2的32次方是10位数,所以2的90次方可以表示成一个3位的1000000000进制数,并用一个长度为3的无符号整型数组来存储各位的数值。
int _tmain(int argc, _TCHAR* argv[]) { int a[3] = {0}; int j; for(int i = 0;i < 90;++i) { for(j = 2;j >= 0;--j) { a[j]*=2; } for(j = 2;j >= 0;--j) { if(a[j]>1000000000) { a[j-1] += 1; a[j] -= 1000000000; } } } printf("%d",a[0]); for(j = 1;j >= 0;--j) { int value = 100000000; while(a[j] < value) { printf("%d",0);
value /= 10; } printf("%d",a[j]); } }