ho provato anche

<cmath>
c=pow(2,a);

e mi da una marea di errori

Torre di Hanoi.cpp(10) : error C2668: 'pow': chiamata ambigua a funzione in overload
C:\Programmi\Microsoft Visual Studio 8\VC\include\math.h(575): potrebbe essere 'long double pow(long double,int)'
C:\Programmi\Microsoft Visual Studio 8\VC\include\math.h(527): o 'float pow(float,int)'
C:\Programmi\Microsoft Visual Studio 8\VC\include\math.h(489): o 'double pow(double,int)'
durante la ricerca di corrispondenza con l'elenco di argomenti '(int, int)'