简单大数相加
发布时间:2021-03-14 19:17:54 所属栏目:大数据 来源:网络整理
导读:#include iostream#include cstdio#include cstringusing namespace std;#define N 1000char s1[N];char s2[N];int main(){ int k,i,j; int l1,l2; int a[N]={0}; int b[N]={0}; gets(s1); //getchar() //不用这个玩意,有的话会吞掉下一个字符串的第一个字
#include <iostream> #include <cstdio> #include <cstring> using namespace std; #define N 1000 char s1[N]; char s2[N]; int main() { int k,i,j; int l1,l2; int a[N]={0}; int b[N]={0}; gets(s1); //getchar() //不用这个玩意,有的话会吞掉下一个字符串的第一个字符 ?gets(s2); l1=strlen(s1); l2=strlen(s2); if(l1>=l2) k=l1; else k=l2; for(i=k,j=l1-1;j>=0;i--,j--) a[i] = s1[j]-'0';//把字符按照ASCLL码表的位置转换成整形大小 for(i=k,j=l2-1;j>=0;i--,j--) //逆序相加,从最大位k相加,留出a[0],补充可能的进位 b[i] = s2[j]-'0'; for(i=k;i>0;i--){ a[i]+=b[i]; if(a[i]>9){ a[i]-=10; a[i-1]++;} //进位 } if(a[0]){ for(i=0;i<=k;i++){ cout<<a[i];}} else{ for(i=1;i<=k;i++){ cout<<a[i];} } } (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |