zoukankan      html  css  js  c++  java
  • 1205 Martian Addition

     这是一道20进制相加的习题,关键点在于把字母与数之间的转换,巧妙地利用strchr函数可以进行转换。下面是有位师兄写的吧,代码清晰,很容易看懂。

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 char* NUMS="0123456789abcdefghij";
     5  
     6 /*分别是读取的输入行,加数a,b,计算结果c */
     7  char line[105],a[105],b[105],c[105];
     8  
     9 /*字符换算为实际数值,例如'a'->10,'b'->11*/
    10  int CharToVal(char c)
    11  {
    12      return strchr(NUMS, c)-NUMS;
    13  }
    14  
    15 /*解析输入*/
    16  void CopyNum(char* dest, const char* line)
    17  {
    18      int i,len=strlen(line);
    19      for(i=0;i<len;i++)
    20      {
    21          dest[i]=CharToVal(line[len-1-i]);
    22      }
    23  }
    24  
    25 /*打印加法结果,注意结尾如果为0也要打印0*/
    26  void PrintResult()
    27  {
    28      int i=101;
    29      while(c[i]==0) i--;
    30      
    31      if(i<0) i=0;        /*非常重要,可以保证至少要打印一个0。*/
    32      
    33      for(;i>=0;i--)
    34      {
    35          cout<<NUMS[c[i]];
    36      }
    37      cout<<endl;
    38  }
    39  
    40 /*做加法: c=a+b; */
    41  void Add()
    42  {
    43      int i;
    44      int k=0,sum;/*进位的数值*/
    45      for(i=0;i<102;i++)
    46      {
    47          sum = a[i] + b[i] + k;
    48          c[i] = sum%20;
    49          k = sum/20;
    50      }
    51  }
    52  
    53 int main()
    54  {
    55      while(cin>>line)
    56      {
    57          memset(a,0,sizeof(a));
    58          memset(b,0,sizeof(b));
    59          memset(c,0,sizeof(c));
    60          CopyNum(a,line);            /*获取加数A*/
    61          cin>>line;
    62          CopyNum(b,line);            /*获取加数B*/
    63          Add();                                /*C=A+B;*/
    64          PrintResult();                /*打印出结果*/
    65      }
    66      return 0;
    67  }
  • 相关阅读:
    转载:AAC编解码概述
    转载:ADTS header
    wcf寄宿在iis上的跨域访问问题【不止是添加跨域文件】
    转 http 分析工具
    时间管理1
    关于silverlight和Wcf分布式部署注意问题(收藏夹)
    c#修改xml文件
    关于在线编辑的异常
    创业文摘5--从程序员转向企业家的10个建议
    silverlight 后台代码生成gridview
  • 原文地址:https://www.cnblogs.com/wangaohui/p/2868916.html
Copyright © 2011-2022 走看看