一道简单的C++编程题,原题目在下面,求各位大神帮帮我吧!

2024-12-01 03:22:08
推荐回答(3个)
回答1:

由于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;i        while(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;
}

回答2:

#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;
}

回答3:

200位。。你需要用一个a[200]的数组 来存放这个数字
主要就是高精度运算 你可以去学一下