大数加法
来源:互联网 发布:淘宝店铺打理 编辑:程序博客网 时间:2024/06/05 19:35
既然开头的题目是A+B那我们也用A+B来结尾咯。只不过这个加法高级一点
Input
输入数据有多组
输入A,B两个非常大的数(A和B的长度都不超过1000)
如果A的真值为0退出
输入A,B两个非常大的数(A和B的长度都不超过1000)
如果A的真值为0退出
Output
输出A+B的结果,输出格式如Sample output所示。PS:记住每两个答案之间空一行。
Sample Input
1 2112233445566778899 9988776655443322110
Sample Output
Case 1:3Case 2:1111111111111111110
!!!注意:0001+1=2,不是0002。
#include<stdio.h>#include<string.h>int main(){ int x,y,i,max,cur=1; char a[1002],b[1002]; while(scanf("%s",&a)) { x=strlen(a); if(x==1&&a[0]=='0') break; scanf("%s",&b); y=strlen(b); max=x>y?x:y; int n[1002]={0},m[1002]={0}; int sum[1005]={0}; for(i=0;i<x;i++) n[i]=a[x-i-1]-'0'; for(i=0;i<y;i++) m[i]=b[y-i-1]-'0'; for(i=0;i<max;i++) sum[i]=n[i]+m[i]; for(i=0;i<max;i++) { if(sum[i]>9) { if(i==max-1) max++; sum[i]=sum[i]-10; sum[i+1]++; } } if(cur-1>0) printf("\n"); printf("Case %d:\n",cur); int v=0; for(i=max-1;i>=0;i--) { if(sum[i]!=0||v==1) { printf("%d",sum[i]); v=1; } } printf("\n"); cur++; memset(a,0,sizeof(char)*1002); memset(b,0,sizeof(char)*1002); } return 0;}
阅读全文
1 0
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- git 基本步骤
- Hibernate
- 空间统计学习笔记——常见空间聚类算法优劣概述
- [后端人员耍前端系列]AngularJs篇:30分钟快速掌握AngularJs
- 渗透技巧——Windows系统的帐户隐藏
- 大数加法
- AJAX 从入门到放弃
- CompletionService
- computer vision笔记
- ElasticSearch的使用
- 斐讯0元购路由器,K2P、K3怎么样?
- TensorBoard 出现 No scalar data was found
- ubuntu安装IDEA 2017.12.10
- Linux 安装Redis4.0