由于200位太长了,就直接大数处理。(这是最暴力的,测了几个数据发现很长的数据结果都是0,所以应该有什么规律,你可以自己想下)
#include
#include
#include
#include
using namespace std;
int a[202],b[202],t,tt;
char s[202];
int main()
{
while(cin>>s)
{
t=strlen(s);
int i,j,k;
for(i=0;iwhile(t!=1)
{
b[0]=1;
tt=1;
for(i=0;i{
int temp=0;
for(j=0;j {
b[j]=a[i]*b[j]+temp;
temp=b[j]/10;
b[j]=b[j]%10;
}
if(temp!=0)b[tt++]=temp;
}
t=tt;
for(i=0;i}
cout< }
return 0;
}
#include
using namespace std;
int fen(int x){
int i=0,j=0,k=0,sum=1;
i = x/100;
j =(x-i*100)/10;
k = (x-i*100-j*10);
if(i !=0){
sum = i*sum;
cout< }
if(j !=0){
sum= j*sum;
cout<}
if(k !=0){
sum= k*sum;
cout<}
return sum;
}
int main(){
int a;
cin>>a;
while(a>=10)
a = fen(a);
return 0;
}
200位。。你需要用一个a[200]的数组 来存放这个数字
主要就是高精度运算 你可以去学一下