• 【ACM】nyoj_103_A+BII_201307291022


    A+B Problem II
    时间限制:3000 ms  |  内存限制: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: ",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(" ");
     }
     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++?" Case %d: ":"Case %d: ",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(" ");
     }
     return 0;
    }

    较之上个程序有所修改,输出部分有所简化

  • 相关阅读:
    Redis学习——数据结构下
    CI 笔记7,easyui 异步加载
    CI 笔记,借鉴的4个辅助自定义函数
    CI笔记6 json 传值
    CI 笔记,使用 json的参考文档(废弃)
    CI 笔记5 (CI3.0 默认控制器,多目录)
    CI 笔记(easyui js命令)
    CI 笔记4 (easyui 手风琴)
    CI 笔记3 (easyui 的layout布局,最小化layout原型)
    CI 笔记3 (easyui 和 js 排错)
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3222438.html
Copyright © 2020-2023  润新知