首页 > 代码库 > 大数据阶乘——字符串乘法器
大数据阶乘——字符串乘法器
char s[1001]; //字符串s存储乘法得到的大数字,s[0]代表低位 int GetLength()//返回s的最大不为空的元素下标 { int i; for(i=1000; i>=0; i--) { if(s[i]!=‘0‘) { break; } } return i; } void cal(int k)//计算大数字s和小数字k相乘 { int add=0;//进位数 int i; int temp; for(i=0; i<=GetLength(); i++)// { temp=(s[i]-‘0‘)*k+add;//注意字符与数字之间的区别,下面也是 s[i]=temp%10+‘0‘; add=temp/10; } while(add) { s[i++]=add%10+‘0‘; add/=10; } } int main() { int n; while(scanf("%d",&n)!=EOF) { //初始化s s[0]=‘1‘; for(int i=1; i<=1000; i++) { s[i]=‘0‘; } //从1开始乘到n for(int i=1; i<=n; i++) { cal(i); } int flag=0; cout<<n<<"!="; for(int i=1000; i>=0; i--) { if(s[i]!=‘0‘) { flag=1; } if(flag) { cout<<s[i]; } } cout<<endl; } return 0; }
大数据阶乘——字符串乘法器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。