一篇文章讲明白MartianAddition

简介: 一篇文章讲明白MartianAddition

In the 22nd Century, scientists have discovered intelligent residents live on the Mars. Martians are very fond of mathematics. Every year, they would hold an Arithmetic Contest on Mars (ACM). The task of the contest is to calculate the sum of two 100-digit numbers, and the winner is the one who uses least time. This year they also invite people on Earth to join the contest.

As the only delegate of Earth, you're sent to Mars to demonstrate the power of mankind. Fortunately you have taken your laptop computer with you which can help you do the job quickly. Now the remaining problem is only to write a short program to calculate the sum of 2 given numbers. However, before you begin to program, you remember that the Martians use a 20-based number system as they usually have 20 fingers.

Input:

You're given several pairs of Martian numbers, each number on a line.

Martian number consists of digits from 0 to 9, and lower case letters from a to j (lower case letters starting from a to present 10, 11, ..., 19).

The length of the given number is never greater than 100.

Output:

For each pair of numbers, write the sum of the 2 numbers in a single line.

Sample Input:

1234567890

abcdefghij

99999jjjjj

9999900001

Sample Output:

bdfi02467j

iiiij00000

题目意思:二十进制加法运算

。。。。我的代码:

1 #include

2 #include[span style="color: rgba(0, 0, 255, 1)">string.h>

3 int a【200】,b【200】,c【200】;

4 char x【200】,s【200】,t【200】;

5 int main()

6 {

7 int i,j,k,len1,len2,len;

8 while(scanf("%s%s",x,s)!=EOF)

9 {

10 memset(a,0,sizeof(a));

11 memset(b,0,sizeof(b));

12 memset(c,0,sizeof(c));

13 len1=strlen(x);

14 len2=strlen(s);

15 if(len1>len2)

16 len=len1;

17 else

18 len=len2;

19 i=0;

20 for(j=len1-1; j>=0; j--)

21 {

22 if(x【j】<='9'x【j】>='0')

23 a【i++】=x【j】-'0';

24 else

25 a【i++】=x【j】-87;

26 }

27 i=0;

28 for(j=len2-1; j>=0; j--)

29 {

30 if(s【j】<='9's【j】>='0')

31 b【i++】=s【j】-'0';

32 else

33 b【i++】=s【j】-87;

34 }

35 for(i=0; i

36 {

37 c【i】=c【i】+a【i】+b【i】;

38 if(c【i】>19)

39 {

40 c【i+1】=c【i】/20;

41 c【i】=c【i】%20;

42 }

43 }

44 i=len;

45 while(!c【i】)///000001这种情况,0不能输出,将0跳出

46 {

47 i--;

48 if(i==-1)

49 {

50 printf("0");

51 break;

52 }//代码效果参考:http://www.ezhiqi.com/bx/art_4847.html

53 }

54 k=0;

55 for(j=i; j>=0; j--)

56 {

57 if(c【j】>=0c【j】<=9)

58 t【k++】=c【j】+'0';

59 else

60 t【k++】=c【j】+87;

61 }

62 for(j=0; j

63 printf("%c",t【j】);

64 printf("\n");

65

66 }

67 return 0;

68 }

大佬的代码是这样的:

1 #include///学习:可以将要输出的内容写入一个字符数组之中,输出在字符数组中的位置即可

2 int main()

3 {

4 char a【200】,b【200】,s【21】="0123456789abcdefghij";

5 int c【200】,i,j,k,p,q;

6 while(scanf("%s%s",a,b)!=EOF){

7 memset(c,0,sizeof(c));

8 k=0;

9 p=strlen(a);

10 q=strlen(b);

11 j=q-1;

12 for(i=p-1;i>=0||j>=0;i--){

13 if(i>=0){

14 if(a【i】-'a'

15 c【k】+=a【i】-'a'+10;

16 else

17 c【k】+=a【i】-'0';

18 }

19 if(j>=0){

20 if(b【j】-'a'

21 c【k】+=b【j】-'a'+10;

22 else

23 c【k】+=b【j】-'0';

24 }

25 if(c【k】>=20){

26 c【k】%=20;

27 c【k+1】+=1;

28 }

29 j--;

30 k++;

31 }

32 if(c【k】==0)

33 k-=1;

34 for(i=k;i>=0;i--)

35 printf("%c",s【c【i】】);

36 printf("\n");

37 }//代码效果参考:http://www.ezhiqi.com/bx/art_2931.html

38 return 0;

39 }

学习了

上一篇Java数据结构(六)二叉树入门下一篇Java数据结构(七)堆

本文作者:王陸

本文链接:

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

相关文章
|
小程序 JavaScript Java
医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)
医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)
536 0
|
测试技术 持续交付 开发者
软件开发实践之持续集成
软件开发实践之持续集成
171 0
|
自然语言处理 编译器 程序员
文件编译和预处理
文件编译和预处理
207 0
|
关系型数据库 数据库
PG 控制文件
数据库启动时会读取控制文件,识别上次关机前的状态信息(元数据信息)
286 0
|
XML Java 数据格式
|
大数据 智能硬件 云计算
《资本说》突围BAT,你还缺一份完美BP
  有的人创业是因为从事一个行业久了有一定的社会经验,希望对这个行业做出一些变革;有的人是因为在一个岗位做久了想去做老板……如何在创业者越来越多,投资人的时间有限的时候,有效且高效的吸引投资人的注意力?
1896 0
|
前端开发 JavaScript
|
定位技术 开发工具 Android开发
百度地图Android SDK报错:Error inflating class com.baidu.mapapi.map.MapView
在自己的开发的Android应用中调用百度地图Android SDK,发生运行时错误,如图: 该错误:Error inflating class com.baidu.mapapi.map.MapView 解决方案: 解决该问题需要添加一段代码,即,在初始化百度地图之前首先调用百度地图自身的初始化方法代码: SDKInitializer.initialize(getApplicationContext()); 即可。
3166 0
|
4天前
|
云安全 人工智能 自然语言处理