大数据阶乘——字符串乘法器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据阶乘——字符串乘法器相关的知识,希望对你有一定的参考价值。
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; }
以上是关于大数据阶乘——字符串乘法器的主要内容,如果未能解决你的问题,请参考以下文章