Martian Addition
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的更多相关文章
- [ACM] ZOJ Martian Addition (20进制的两个大数相加)
Martian Addition Time Limit: 2 Seconds Memory Limit: 65536 KB In the 22nd Century, scientists ...
- ZOJ Martian Addition
Description In the 22nd Century, scientists have discovered intelligent residents live on the Mars. ...
- ZOJ Problem Set - 1205 Martian Addition
一道简单题,简单的20进制加减法,我这里代码写的不够优美,还是可以有所改进,不过简单题懒得改了... #include <stdio.h> #include <string.h> ...
- ZOJ 1205 Martian Addition
原题链接 题目大意:大数,20进制的加法计算. 解法:convert函数把字符串转换成数组,add函数把两个大数相加. 参考代码: #include<stdio.h> #include&l ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- [LeetCode] Range Addition 范围相加
Assume you have an array of length n initialized with all 0's and are given k update operations. Eac ...
- iOS 之 SVN提交错误:"XXX" is scheduled for addition, but is missing
今天使用SVN提交项目时,出现了这样的提示:"XXX" is scheduled for addition, but is missing.(无关紧要的东西用XXX代替). 看报错 ...
- POJ 2948 Martian Mining
Martian Mining Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2251 Accepted: 1367 Descri ...
随机推荐
- jQuery表单验证的几种方法
1.jQuery的框架的验证:validate框架 Jquery Validate 验证规则 (1)required:true 必输字段(2)remote:”check.PHP” 使用ajax方法调用 ...
- 【Hive六】Hive调优小结
Hive调优 Hive调优 Fetch抓取 本地模式 表的优化 小表.大表Join 大表Join大表 MapJoin Group By Count(Distinct) 去重统计 行列过滤 动态分区调整 ...
- 【NXP开发板应用—智能插排】4. PWM驱动
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
- java语言描述 用抽象类模拟咖啡机的工作
import java.util.Scanner; class Test { public static void main(String[] args) { coffee per = new cof ...
- Python3爬虫(十五) 代理
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.设置代理 1.urllib #HTTP代理类型 from urllib.error import URLErr ...
- Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务、WCF消息头添加安全验证Token
原文:Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务.WCF消息头添加安全验证Token 为什么选择wcf? 因为好像wcf和wpf就是哥俩,,, 为什么选择异步 ...
- Prism for WPF 搭建一个简单的模块化开发框架(一)
原文:Prism for WPF 搭建一个简单的模块化开发框架(一) 最近闲来无事又想搞搞WPF..... 做个框架吧,可能又是半途而废....总是坚持不下来 不废话了, 先看一下工程结构 布局大概是 ...
- GDAL中GDALDataset::RasterIO分块读取的实现
GDALDataset类中的RasterIO函数能够对图像任意指定区域.任意波段的数据按指定数据类型.指定排列方式读入内存和写入文件中,因此可以实现对大影像的分块读.写运算操作.针对特大的影像图像,有 ...
- P1060 开心的金明
P1060 开心的金明 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要 ...
- java对于Redis中jedis的操作
package com.answer.redis; import java.util.HashMap; import java.util.List; import java.util.Map; imp ...