HDU 1042 N!(大数阶乘)

来源:互联网 发布:淘宝拍摄静物拍摄 编辑:程序博客网 时间:2024/05/17 09:26

一个上千的数的阶乘……又是一个经典的大数问题……

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

代码很是繁琐啊╮(╯▽╰)╭