zoukankan      html  css  js  c++  java
  • 备战考研算法笔记(三)a+b

    题目描述:

    实现一个加法器,使其能够输出a+b的值。

    输入:

    输入包括两个数a和b,其中a和b的位数不超过1000位。

    输出:

    可能有多组测试数据,对于每组数据,
    输出a+b的值。

    样例输入:
    2 6
    10000000000000000000 10000000000000000000000000000000
    样例输出:
    8
    10000000000010000000000000000000


    这是我的代码
    // OJ.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdio.h"
    #include "StdAfx.h"
    #include <string.h>
    
    int main()
    {
        char a[1010];
        char b[1010];
        char result[1000]={0};
        while(scanf("%s%s",a,b)!=EOF)
      {
          int m= strlen(a);
          int n=strlen(b);
          char result[1010]={0};
          //printf("%s %d
    ",a,m);
        //printf("%s %d
    ",b,n);
    
        if(m>n)
         {
          int i=1;
          for(i;i<=n;i++)
          {
              result[m-i]+=a[m-i]+b[n-i]-48;
              if(result[m-i]>57)
              {
                  result[m-i]-=10;
                  result[m-i-1]+=1;
              }
          }
          i=0;
          for(i;i<m-n;i++)
          {
           result[i]=a[i]+result[i];
          }
          printf("%s
    ",result);
      }
    
      else if(m<n)
      {
            int i=1;
          for(i;i<=m;i++)
          {
              result[n-i]+=a[m-i]+b[n-i]-48;
              if(result[n-i]>57)
              {
                  result[n-i]-=10;
                  result[n-i-1]+=1;
              }
          }
          i=0;
          for(i;i<n-m;i++)
          {
           result[i]=b[i]+result[i];
          }
          printf("%s
    ",result);
      }
    
      else if(m==n)
      {
          int i=1;
          for(i;i<=m;i++)
          {
              result[n-i]+=a[m-i]+b[n-i]-48;
              if(result[n-i]>57)
              {
                  if(i==n)
                  {
                      result[n-i]-=10;
                      printf("1");
                  }
                  else
                  {
                      result[n-i]-=10;
                      result[n-i-1]+=1;
                  }
              }
           
          }
          printf("%s
    ",result);
          }
    
        }
        
        return 0;
    }
    可是没AC
    这是找的已经AC的
     1 #include "StdAfx.h"
     2 #include<stdio.h>
     3 #include<string.h>
     4 
     5 #define N 1010
     6 
     7 int main(void) {
     8         char num1[N],num2[N];
     9         
    10         int length1,length2,c,k,i;
    11         while(scanf("%s%s",num1,num2) == 2) {
    12                 int a[N] = {0},b[N] = {0};
    13                 length1 = strlen(num1);
    14                 length2 = strlen(num2);
    15                 if(length1 < length2) {
    16                         k = length2;
    17                 }else {
    18                         k = length1;
    19                 }
    20                 c = k;
    21                 for(i=0; i<length1; k--,i++) {
    22                         a[k] = num1[length1 - 1 - i] - '0';
    23                 }
    24                 for(i=0,k=c; i<length2; k--,i++) {
    25                         b[k] = num2[length2 - 1 - i] - '0';
    26                 }
    27                 for(i=c; i>0; i--) {
    28                         a[i] += b[i];
    29                         if(a[i]>=10) {
    30                                 a[i] -= 10;
    31                                 a[i-1]++;
    32                         }
    33                 }
    34                 if(a[0] != 0) {
    35                         for(i=0; i<=c; i++) {
    36                                 printf("%d",a[i]);
    37                         }
    38                 }else {
    39                         for(i=1; i<=c; i++) {
    40                                 printf("%d",a[i]);
    41                         }
    42                 }
    43                 printf("
    ");
    44         }
    45         return 0;
    46 }
    
    

    运行一下跟我结果一样 ,为什么我错了呢????

     不过人家的代码的确写的思路清晰,一看就懂
  • 相关阅读:
    通过CMMI5的国内企业有几个?这个认证是不是很牛啊?
    CNUTCon 全球运维技术大会2017
    新浪微博基于Docker的混合云架构与应用实践-DockerInfo
    k8s~为服务添加ingress的实现
    springboot~HttpPut开启application/x-www-form-urlencoded
    K8s~为pod添加sidecar进行日志收集
    k8s~部署EFK框架
    springboot~Transactional注解的注意事项
    CentOS 6.4 快速安装Nginx笔记
    去掉NSString中的HTML标签
  • 原文地址:https://www.cnblogs.com/ligen/p/3202546.html
Copyright © 2011-2022 走看看