加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

两个大数的相乘

发布时间:2020-12-14 03:00:32 所属栏目:大数据 来源:网络整理
导读:这里还有很多bug,只能够将每个数字一个一个输入,并用空格间隔,同时,结束输入的时候,需要按ctrl+z来实现 #includeiostream using namespace std; const int N=100; int getNumber(int a[],int i) { int num; while(cinnum)//按键不等于换行或回车 a[i++]

这里还有很多bug,只能够将每个数字一个一个输入,并用空格间隔,同时,结束输入的时候,需要按ctrl+z来实现



#include<iostream> using namespace std; const int N=100; int getNumber(int a[],int i) { int num; while(cin>>num)//按键不等于换行或回车 a[i++]=num; //for(int bit=0;bit<i;bit++) //cout<<a[bit]; //cout<<endl; return i; } int main(void) { int a[N],b[N]; int c[N]={0}; int i=0,j=0,k_a,k_b; cout<<"Enter one number:"<<endl; k_a=getNumber(a,i);//获取数据的位数 cout<<k_a<<endl; cout<<"Enter another number:"<<endl; cin.clear();//回复到有效状态 k_b=getNumber(b,j);//获取数据的位数 cout<<k_b<<endl; cout<<"After multiply:"<<endl; //for(int i=0;i<N;i++)//验证全部为0 //cout<<c[i]<<" ** "; cout<<endl; int jinwei=-1;//确保相乘的数能够在每次相乘的时候最低位在对应的位置 int k_c;//最后的时候,k_c是保留了下来的 for(int i=k_a-1;i>=0;i--) { jinwei++;//第一个数放在c[0] k_c=jinwei; int jinweishu=0;//每次都要把进位数清零 //cout<<jinwei<<endl; //cout<<a[i]<<endl;//验证每个位的数 for(int j=k_b-1;j>=0;j--)//每次从个位开始相乘 { c[k_c]=c[k_c]+a[i]*b[j]+jinweishu; jinweishu=c[k_c]/10; c[k_c]=c[k_c]%10; k_c++; } //循环完了以后,如果进位数不为0 if(jinweishu!=0) c[k_c]=jinweishu; else//否则它这个位没有进位数的话就没有值 k_c--; } for(int w=k_c;w>=0;w--) cout<<c[w]; cout<<endl; return 0; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读