#include /* Consente l'uso di printf e scanf */ #include /* Consente per lo schifoso windows di usare il getch*/ #include /*Consente l'uso di operatori matematici*/ /* Funzione leggi */ int leggi (const char*st){ int n; printf("%s", st); scanf ("%d", &n); return n; } /* Leggi */ int Potenza (int esp){ if (esp==0) return 1; else if (esp%2==0) /*Quando è dispari.Si fa 2*Potenza(esp-2)*2, semplifica i calcoli*/ return 4*Potenza(esp-2); else /*Se è dispari siamo costretti ad utilizzare il modo semplice, ma attenti, se sottraggo 1 sicuramente mi capiterà di ritrovarmi in una situazione di esponente pari: non c'è problema, se ci pensate è ancora meglio... Perchè i calcoli si semplificano*/ return 2*Potenza(esp-1); }/*Potenza*/ int main (void){ int esp; esp=leggi("Inserire l'esponente : "); printf("2^%d = %d",esp,Potenza(esp)); printf("\n"); getch(); return 0; }/*main*/