一个上千的数的阶乘……又是一个经典的大数问题……
PS:大数问题一般都是通过字符串保存的
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042
#include <iostream>//1042 大数阶乘
#include <string>
using namespace std;
int main()
{
string str;
int n,sum, ws=1//是几位数
,tmp ,num=0;//每一位的数字
while(cin>>str,str!="0")
{
n=0;
for(int i=0;i<str.length();i++)
{
n+=str[i]-'0';
sum=n;
}
while(n>=10)
{
tmp=n; ws=1;
while(tmp>=10)
{
tmp/=10;
ws*=10;
}
sum=0;
while(ws>0)
{
num=n/ws;
sum+=num;
n-=num*ws;
ws/=10;
}
n=sum;
}
cout<<sum<<endl;
}
return 0;
}
代码很是繁琐啊╮(╯▽╰)╭