这道题很明显就是要用高精度算法,用数组来储存每一位,逢十进一需要我们自己去实现,输出时记得把前面的0去掉就好
代码如下:
#include<iostream>
using namespace std;
int main()
{
int a[200]={1,};
int num;
cin >> num ;
while(num--){
for(int i = 0; i < 200 ; i++)
a[i] = a[i] * 3;//all the digit *3;
for(int c = 0 ; c < 199 ; c++){
a[c+1] = a[c+1] + a[c] / 10;
a[c] = a[c] % 10;
}//carry a number as in adding
}
int i=199;
for(i ; i >=0 ; i--){
if(a[i] != 0)break;
}//find the nozero
int n=i+1;//the above has reduced one more number
while(n--){
cout << a[n];
}
}