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 题目意思:二十进制加法运算 。。。。我的代码:
 #include<stdio.h>
#include<string.h>
int a[],b[],c[];
char x[],s[],t[];
int main()
{
int i,j,k,len1,len2,len;
while(scanf("%s%s",x,s)!=EOF)
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(c,,sizeof(c));
len1=strlen(x);
len2=strlen(s);
if(len1>len2)
len=len1;
else
len=len2;
i=;
for(j=len1-; j>=; j--)
{
if(x[j]<=''&&x[j]>='')
a[i++]=x[j]-'';
else
a[i++]=x[j]-;
}
i=;
for(j=len2-; j>=; j--)
{
if(s[j]<=''&&s[j]>='')
b[i++]=s[j]-'';
else
b[i++]=s[j]-;
}
for(i=; i<len; i++)
{
c[i]=c[i]+a[i]+b[i];
if(c[i]>)
{
c[i+]=c[i]/;
c[i]=c[i]%;
}
}
i=len;
while(!c[i])///000001这种情况,0不能输出,将0跳出
{
i--;
if(i==-)
{
printf("");
break;
}
}
k=;
for(j=i; j>=; j--)
{
if(c[j]>=&&c[j]<=)
t[k++]=c[j]+'';
else
t[k++]=c[j]+;
}
for(j=; j<k; j++)
printf("%c",t[j]);
printf("\n"); }
return ;
}

大佬的代码是这样的:

 #include<bits/stdc++.h>///学习:可以将要输出的内容写入一个字符数组之中,输出在字符数组中的位置即可
int main()
{
char a[],b[],s[]="0123456789abcdefghij";
int c[],i,j,k,p,q;
while(scanf("%s%s",a,b)!=EOF){
memset(c,,sizeof(c));
k=;
p=strlen(a);
q=strlen(b);
j=q-;
for(i=p-;i>=||j>=;i--){
if(i>=){
if(a[i]-'a'>=)
c[k]+=a[i]-'a'+;
else
c[k]+=a[i]-'';
}
if(j>=){
if(b[j]-'a'>=)
c[k]+=b[j]-'a'+;
else
c[k]+=b[j]-'';
}
if(c[k]>=){
c[k]%=;
c[k+]+=;
}
j--;
k++;
}
if(c[k]==)
k-=;
for(i=k;i>=;i--)
printf("%c",s[c[i]]);
printf("\n");
}
return ;
}
学习了
 

Martian Addition的更多相关文章

  1. [ACM] ZOJ Martian Addition (20进制的两个大数相加)

    Martian Addition Time Limit: 2 Seconds      Memory Limit: 65536 KB   In the 22nd Century, scientists ...

  2. ZOJ Martian Addition

    Description In the 22nd Century, scientists have discovered intelligent residents live on the Mars. ...

  3. ZOJ Problem Set - 1205 Martian Addition

    一道简单题,简单的20进制加减法,我这里代码写的不够优美,还是可以有所改进,不过简单题懒得改了... #include <stdio.h> #include <string.h> ...

  4. ZOJ 1205 Martian Addition

    原题链接 题目大意:大数,20进制的加法计算. 解法:convert函数把字符串转换成数组,add函数把两个大数相加. 参考代码: #include<stdio.h> #include&l ...

  5. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  6. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  7. [LeetCode] Range Addition 范围相加

    Assume you have an array of length n initialized with all 0's and are given k update operations. Eac ...

  8. iOS 之 SVN提交错误:"XXX" is scheduled for addition, but is missing

    今天使用SVN提交项目时,出现了这样的提示:"XXX" is scheduled for addition, but is missing.(无关紧要的东西用XXX代替). 看报错 ...

  9. POJ 2948 Martian Mining

    Martian Mining Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2251 Accepted: 1367 Descri ...

随机推荐

  1. parsing XML document from class path resource [applicationtext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationtext.xml] cannot be opened because it does not e

    控制台异常: parsing XML document from class path resource [applicationtext.xml]; nested exception is java ...

  2. Centos配置静态IP

    ifconfig -a           //看IP,HWADDR netstat   -rn       //看网关 service network restart  //重启网卡 输入命令:vi ...

  3. Sass使用

    1. 什么是Sass ???   Sass是一个将脚本解析成CSS的脚本语言,也可以称为CSS扩展语言. 2. 安装: 第一步:先安装Ruby (sass基于Ruby语言开发而成,因此安装sass前需 ...

  4. Tornado 线程池应用

    Tornado是一个异步框架,在异步操作的时候能提升程序的处理性能.但是如果在程序中碰到同步的逻辑,由于GIL的关系,会直接卡死,导致性能急剧下降. 目前对于mongodb以及redis都有比较不错的 ...

  5. 30行代码实现js原生三级联动菜单

    var oneArr=[['00','成都'],['01','绵阳'],['02','南充']] var towArr={ '00':[['000','武侯区'],['002','锦江区']], '0 ...

  6. Mysql 关于处理NULL值的相关函数和操作符

    操作符 <=> NULL-safe equal. This operator performs an equality comparison like the = operator, bu ...

  7. python生成器函数中return的作用

    当生成器函数中含有return时,return不会返回任何值,会直接终止当前生成器,对yield的作用没有影响,当函数执行到return时候,调用next()来执行生成器则会报错,如果使用for循环遍 ...

  8. 基于Geomesa服务查询轨迹数据无法根据空间和时间范围进行结果查询

    一.Geomesa - QuickStart(教程工程包)   百度网盘下载地址:geomesa-tutorials-master.7z 二.解压后,IDEA编译如下 百度网盘下载地址:IDEA201 ...

  9. 反射vs简单工厂模式

    interface Computer { void printpc(); } class lenovo implements Computer { @Override public void prin ...

  10. c语言入门这一篇就够了-学习笔记(一万字)

    内容来自慕课网,个人学习笔记.加上了mtianyan标签标记知识点. C语言入门 -> Linux C语言编程基本原理与实践 -> Linux C语言指针与内存 -> Linux C ...