好久没敲过ACM了,连一个大数相乘都写了好久,还有就是,刚开始不知道这题怎么写的,没有思路,有事数学的问题,自己又坑了,还是百度了一下才找到思路的...
#include <iostream>
#include <string.h>
using namespace std;
void fun(char *a, int n, int len);
int main()
{
int N;
cin >> N;
while(N--)
{
int t;
char a[200] = {'1'};
int len;
cin >> t;
while(t >= 5)
{
len = strlen(a);
fun(a, 3, len);
t -= 3;
}
len = strlen(a);
fun(a, t, len);
int i = 190;
while( a[i] == 0 )
i--;
for(; i >= 0; i--)
cout << a[i];
cout << endl;
}
}
void fun(char *a, int n, int len)
{
int t = 0;
int i;
for(i = 0; i < len; i++)
{
t = (a[i]-'0') * n + t;
a[i] = t % 10 + '0';
t = t / 10;
}
while(t != 0)
{
a[i] = t % 10 + '0';
t /= 10;
i++;
}
}