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. HDU Ellipse(simpson积分)

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  2. 设计四个线程,其中两个线程每次对j增加1,另外两个线程对j每次减1,写出程序

    /* * 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1.写出程序. */ public class ThreadTest { private int j; public sta ...

  3. Java 8 – Map排序

    前提 Map是Java中最常用的集合类之一,这里整理了关于HashMap的排序 (关于List的排序,请查看Collections.sort()的doc或源码). 将无序的HashMap借助Strea ...

  4. 【rabbitmq消息队列配置】

    #erlang语言支持包 #rabbitmq-server安装支持 #添加用户 #删除用户 #用户角色 #启动 #登录 #管理界面 #guest登录不了: Rabbitmq.conf文件添加 #开启管 ...

  5. zkfc的znode不存在的问题

    cd /soft/hadoop/logs/hadoop-centos-zkfc-s101.log发现: 2018-09-29 12:42:03,616 FATAL org.apache.hadoop. ...

  6. 【Hive五】Hive函数UDF

    Hive函数 系统自带的函数 查看系统自带的函数 查看系统自带的函数 show functions; 显示自带的函数的用法 desc function upper; 详细显示自带的函数的用法 desc ...

  7. python学习笔记:第11天 闭包及迭代器

    目录 1. 函数名的使用 2. 闭包 3. 迭代器 1. 函数名的使用 其实函数名也是一个变量,但它是一个比较特殊的变量,与小括号配合可以执行函数的变量: 函数名其实和内存一样,也可以使用print查 ...

  8. PAT A1127 ZigZagging on a Tree (30 分)

    Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can ...

  9. rails应用页面导出为pdf文档

    1.下载安装wkhtmltox https://wkhtmltopdf.org/downloads.html   2.gemfile添加 gem 'pdfkit' #页面导出pdf gem 'wkht ...

  10. 如何配置 SpaceVim

    本文将系统地介绍如何配置 SpaceVim,配置 SpaceVim 主要包括以下几个内容: 设置 SpaceVim 选项 启动/禁用模块 添加自定义插件 添加自定义按键映射以及插件配置 设置Space ...