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

POJ 1503 大数相加(持续相加)

发布时间:2020-12-14 04:00:55 所属栏目:大数据 来源:网络整理
导读:题意:非两个大数相加,而是连续的大数相加,直到输入0为此。 思路:以前我做过一道是两个数的大数相加,所以有些印象,方法也是一样的。设个字符串数组,然后依次相加即可。还是比较容易的,只是我的代码可能有点长,不太简便吧。不过要注意的是,我提交了

题意:非两个大数相加,而是连续的大数相加,直到输入0为此。

思路:以前我做过一道是两个数的大数相加,所以有些印象,方法也是一样的。设个字符串数组,然后依次相加即可。还是比较容易的,只是我的代码可能有点长,不太简便吧。不过要注意的是,我提交了一次没过,然后找原因才知道,可以输入的字符串第一个字符也可以为0.比如:012345,而不一定输入的是12345,所以只有当字符串长度为1且为0时才退出。

代码如下:

#include<iostream> #include<cstring> char a[110][110],b[200]; using namespace std; int main() { ? ? int k=0; ? ? while(cin>>a[k]) ? ? { ? ? ? ? if(a[k][0]=='0'&&strlen(a[k])==1) break; ? ? ? ? if(k==0) strcpy(b,a[k]); ? ? ? ? else ? ? ? ? { ? ? ? ? ? ? int i,j,p,q,n,c[200]={0}; ? ? ? ? ? ? p=strlen(a[k]); ? ? ? ? ? ? q=strlen(b); ? ? ? ? ? ? if(p>=q) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? for(i=p-1,j=p;i>=0;i--) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? if(i-p+q>=0) c[j]+=(a[k][i]-48)+(b[i-p+q]-48); ? ? ? ? ? ? ? ? ? ? else c[j]+=(a[k][i]-48); ? ? ? ? ? ? ? ? ? ? if(c[j]>9) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? c[j-1]+=1; ? ? ? ? ? ? ? ? ? ? ? ? c[j]-=10; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? j--; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? n=p; ? ? ? ? ? ? } ? ? ? ? ? ? else ? ? ? ? ? ? { ? ? ? ? ? ? ? ? for(i=q-1,j=q;i>=0;i--) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? if(i-q+p>=0) c[j]+=(a[k][i-q+p]-48)+(b[i]-48); ? ? ? ? ? ? ? ? ? ? else c[j]+=(b[i]-48); ? ? ? ? ? ? ? ? ? ? if(c[j]>9) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? c[j-1]+=1; ? ? ? ? ? ? ? ? ? ? ? ? c[j]-=10; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? j--; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? n=q; ? ? ? ? ? ? } ? ? ? ? ? ? for(i=0;i<=n;i++) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? if(c[i]!=0) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? int m=0; ? ? ? ? ? ? ? ? ? ? for(;i<=n;i++) ? ? ? ? ? ? ? ? ? ? ? ?b[m++]=c[i]+'0'; ? ? ? ? ? ? ? ? ? ? b[m]=''; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? k++; ? ? } ? ? cout<<b<<endl; ? ? return 0; }

(编辑:李大同)

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

    推荐文章
      热点阅读