zoukankan      html  css  js  c++  java
  • 大明A+B-201307301243.txt

    大明A+B
    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 6303    Accepted Submission(s): 2178


    Problem Description
    话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。
    这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。

    现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。

    Input
    本题目包含多组测试数据,请处理到文件结束。
    每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
     

    Output
    请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。

    Sample Input
    1.1 2.9
    1.1111111111 2.3444323343
    1 1.1
     

    Sample Output
    4
    3.4555434454
    2.1
     


    #include <stdio.h>
    #include <string.h>
    #define MAX_LEN 400
    int main()
    {
     char str1[MAX_LEN+40],str2[MAX_LEN+40];
     int an1[MAX_LEN+40],an2[MAX_LEN+40],
     an3[MAX_LEN+40],an4[MAX_LEN+40];
     while(scanf("%s%s",str1,str2)!=EOF)
     {
      int i,j,k,len1,len2;
      memset(an1,0,sizeof(an1));
      memset(an2,0,sizeof(an2));
      memset(an3,0,sizeof(an3));
      memset(an4,0,sizeof(an4));//清零
      len1=strlen(str1);
      for(i=0;(i<len1)&&(str1[i]!='.');i++);//找出小数点的位置
      k=i;//printf("%d ",k);
      for(i=k-1,j=0;i>=0;i--)//整数倒序处理
      an1[j++]=str1[i]-'0';
      for(j=1,i=k+1;i<len1;i++)//小数部分
      an3[j++]=str1[i]-'0';
      len2=strlen(str2);
      for(i=0;i<len2&&str2[i]!='.';i++);//找出小数点的位置
      k=i;//printf("%d ",k);
      for(i=k-1,j=0;i>=0;i--)//整数倒叙处理
      an2[j++]=str2[i]-'0';
      for(j=1,i=k+1;i<len2;i++)//小数部分
      an4[j++]=str2[i]-'0';
      for(j=MAX_LEN;j>=0;j--)
      {
      an3[j]+=an4[j];
      if(an3[j]>=10)
      {
       an3[j]-=10;
          an3[j-1]++;
      }
      }
      if(an3[0]==1)
      an1[0]++;//小数进位处理
      for(j=0;j<MAX_LEN;j++)
      {
      an1[j]+=an2[j];
      if(an1[j]>=10)
      {
       an1[j]-=10;
       an1[j+1]++;
      }
      }
      for(i=MAX_LEN;(i>0)&&(an1[i]==0);i--);
      for(;i>=0;i--)
         printf("%d",an1[i]);
      //整数输出
      for(i=MAX_LEN;(i>0)&&(an3[i]==0);i--);
       if(i>=1)//判断小数点
       printf(".");
      //for(j=0;j<i;j++)
      for(j=1;j<=i;j++) 
       printf("%d",an3[j]);
      //小数输出
      printf(" ");
     }
     return 0;
    }
       
       
       
       
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
        

  • 相关阅读:
    初识Django-前后端不分离(一)
    虚拟环境的搭建
    python+request+Excel做接口自动化测试(二)
    使用postman+newman+python做接口自动化测试
    如何处理接口响应结果分析
    request使用的封装
    python中unittest的使用
    使用python的接口测试环境搭建及使用
    关于测试流程的指导心得
    Redis 学习
  • 原文地址:https://www.cnblogs.com/xiaziteng/p/hahahah.html
Copyright © 2011-2022 走看看