#include <stdio.h> /* Consente l'uso di printf e scanf */#include <conio.h> /* Consente per lo schifoso windows di usare il getch*/#include <math.h> /*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*/