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

大数加减

发布时间:2020-12-14 02:28:58 所属栏目:大数据 来源:网络整理
导读:代码: #includeiostream #includestdio.h #includestring.h #define Len 3000//大数的长度 using namespace std; int Input (char n[])//将大数读入的函数 { ? ? char s[Len]; ? ? int i,l; ? ? for(i=0; iLen; i++) n[i]=0; ? ? if(scanf("%s",s)1) return

代码:

#include<iostream> #include<stdio.h> #include<string.h> #define Len 3000//大数的长度 using namespace std; int Input (char n[])//将大数读入的函数 { ? ? char s[Len]; ? ? int i,l; ? ? for(i=0; i<Len; i++) n[i]=0; ? ? if(scanf("%s",s)<1) return -1; ? ? l= strlen(s); ? ? for(i=0; i<l; i++) //将输入的大数逆置 ? ? ? ? n[i]=s[l-i-1]-'0'; } int Print (char n[]) { ? ? int i; ? ? for(i=Len-1; i>0; i--) ? ? ? ? if(n[i]!=0) break; ? ? for(; i>=0; i--) ? ? ? ? printf("%d",n[i]); ? ? printf("n"); } void Add (char a[],char b[],char c[])//大数加法 { ? ? int i=0; ? ? for(i=0; i<Len; i++) ? ? ? ? c[i]=a[i]+b[i]; ? ? for(i=0; i<Len; i++) //处理进位 ? ? { ? ? ? ? if(c[i]>=10) ? ? ? ? { ? ? ? ? ? ? c[i+1]+=c[i]/10; ? ? ? ? ? ? c[i]=c[i]%10; ? ? ? ? } ? ? } } void Mul(char a[],char c[])//大数乘法 { ? ? int i,j; ? ? int alen=strlen(a),blen=strlen(b); ? ? for(i=0; i<Len; i++) c[i]=0; ? ? for(i=0; i<alen; i++) ? ? ? ? for(j=0; j<blen; j++) //处理进位 ? ? ? ? { ? ? ? ? ? ? c[i+j]+=a[i]*b[j]; ? ? ? ? ? ? if(c[i+j]>=10) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? c[i+j+1]+=c[i+j]/10; ? ? ? ? ? ? ? ? c[i+j]%=10; ? ? ? ? ? ? } ? ? ? ? } } int main() { ? ? char a[Len],b[Len],c[Len]; ? ? Input(a); ? ? Input(b); ? ? Add(a,b,c); ? ? Print(c); ? ? Mul(a,c); ? ? Print(c); ? ? return 0; }

(编辑:李大同)

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

    推荐文章
      热点阅读