【ACM】nyoj_103_A+BII_201307291022
A+B Problem II
時(shí)間限制:3000 ms? |? 內(nèi)存限制:65535 KB
難度:3
描述
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
A,B must be positive.
輸入
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
輸出
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation.
樣例輸入
2
1 2
112233445566778899 998877665544332211
樣例輸出
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
?
?
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int an1[MAX_LEN+100];
int an2[MAX_LEN+100];
char str1[MAX_LEN+100];
char str2[MAX_LEN+100];
int main()
{
?int k,N;
?scanf("%d",&N);
?for(k=1;k<=N;k++)
?{??
??int i,j,len1,len2;
??memset(an1,0,sizeof(an1));
??memset(an2,0,sizeof(an2));
??scanf("%s%s",str1,str2);
??len1=strlen(str1);
??for(j=0,i=len1-1;i>=0;i--)
??an1[j++]=str1[i]-'0';
??len2=strlen(str2);
??for(j=0,i=len2-1;i>=0;i--)
??an2[j++]=str2[i]-'0';
??for(i=0;i<MAX_LEN;i++)
??{
??an1[i]+=an2[i];
??if(an1[i]>=10)
??{
???an1[i]-=10;
???an1[i+1]++;
??}
??}
??printf("Case %d:\n",k);
??printf("%s + %s = ",str1,str2);
??for(i=MAX_LEN+100;(i>=0)&&(an1[i]==0);i--);
??if(i>=0)
??for(;i>=0;i--)
??printf("%d",an1[i]);
??else
??printf("0");
??printf("\n");
?}
?return 0;
}
?
hdu_1002_A+BII_bignum_201307291100
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int an1[MAX_LEN+100];
int an2[MAX_LEN+100];
char str1[MAX_LEN+100];
char str2[MAX_LEN+100];
int main()
{
?int k,N,t=0;
?scanf("%d",&N);
?for(k=1;k<=N;k++)
?{??
??int i,j,len1,len2;
??memset(an1,0,sizeof(an1));
??memset(an2,0,sizeof(an2));
??scanf("%s%s",str1,str2);
??len1=strlen(str1);
??for(j=0,i=len1-1;i>=0;i--)
??an1[j++]=str1[i]-'0';
??len2=strlen(str2);
??for(j=0,i=len2-1;i>=0;i--)
??an2[j++]=str2[i]-'0';
??for(i=0;i<MAX_LEN;i++)
??{
??an1[i]+=an2[i];
??if(an1[i]>=10)
??{
???an1[i]-=10;
???an1[i+1]++;
??}
??}
??printf(t++?"\nCase %d:\n":"Case %d:\n",k);
??printf("%s + %s = ",str1,str2);
??for(i=MAX_LEN+100;(i>0)&&(an1[i]==0);i--);??
??for(;i>=0;i--)
??printf("%d",an1[i]);
??printf("\n");
?}
?return 0;
}
較之上個(gè)程序有所修改,輸出部分有所簡化
轉(zhuǎn)載于:https://www.cnblogs.com/xl1027515989/p/3222438.html
總結(jié)
以上是生活随笔為你收集整理的【ACM】nyoj_103_A+BII_201307291022的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi中的基础数据类型
- 下一篇: cocos2d-x,求世界坐标