Problem Description
读入两个不超过25位的火星正整数A和B,计算A+B。需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数。例如:地球上的10进制数2,在火星上记为“1,0”,因为火星个位数是2进制的;地球上的10进制数38,在火星上记为“1,1,1,0”,因为火星个位数是2进制的,十位数是3进制的,百位数是5进制的,千位数是7进制的……
 
Input
测试输入包含若干测试用例,每个测试用例占一行,包含两个火星正整数A和B,火星整数的相邻两位数用逗号分隔,A和B之间有一个空格间隔。当A或B为0时输入结束,相应的结果不要输出。
 
Output
对每个测试用例输出1行,即火星表示法的A+B的值。
 
Sample Input
1,0 2,1
4,2,0 1,2,0
1 10,6,4,2,1
0 0
 
Sample Output
1,0,1
1,1,1,0
1,0,0,0,0,0
 #include <cstdio>
int prime[]={};
void init(void)
{
int i,j,n;
for(i=,n=;i<;i++)
{
for(;;n++)
{
for(j=;j<=n/;j++)
{
if(n%j==)
break;
}
if(j>n/)
{
prime[i]=n++;
break;
}
}
}
}
int main()
{
char str[];
int i,j;
init();
while(gets(str)!=NULL) //scanf不接受空格
{
int a[]={},b[]={},s[]={},n=,la=,lb=;
for(i=;;i++)
{
if(str[i]==',')
{
a[la++]=n;
i++;
n=;
}
else if(str[i]==' ')
{
a[la++]=n;
for(i++,n=;;i++)
{
if(str[i]=='\0')
{
b[lb++]=n;
break;
}
if(str[i]==',')
{
b[lb++]=n;
i++;
n=;
}
n=n*+str[i]-'';
}
break;
}
n=n*+str[i]-'';
} for(la--,lb--,i=;la>=&&lb>=;la--,lb--,i++)
{
s[i] += a[la]+b[lb];
if(s[i]>=prime[i])
{
s[i+]=s[i]/prime[i];
s[i]=s[i]%prime[i];
}
if(la==&&lb!=)
{
for(lb--,i++;lb>=;lb--,i++)
{
s[i] += b[lb];
if(s[i]>=prime[i])
{
s[i+]=s[i]/prime[i];
s[i]=s[i]%prime[i];
}
}
break;
}
else if(lb==&&la!=)
{
for(la--,i++;la>=;la--,i++)
{
s[i] += a[la];
if(s[i]>=prime[i])
{
s[i+]=s[i]/prime[i];
s[i]=s[i]%prime[i];
}
}
break;
}
}
for(i=;s[i]==;i--);
for(;i>=;i--)
{
printf(i==?"%d\n":"%d,",s[i]);
}
}
return ;
}

HDU_1230——火星A+B,加法进制问题的更多相关文章

  1. 九度OJ 1016:火星A+B (进制转换)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4913 解决:1334 题目描述:     读入两个不超过25位的火星正整数A和B,计算A+B.需要注意的是:在火星上,整数不是单一进制的, ...

  2. 火星A+B(字符串整形转化,进制)

    Description 读入两个不超过25位的火星正整数A和B,计算A+B.需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数.例如:地球上的10进制数2,在火星上记为“1,0”, ...

  3. 火星A+B(hdu1230)进制转化

    火星A+B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  4. PAT(B) 1044 火星数字(Java)进制转换

    题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...

  5. B进制加法(洛谷1604)

    分析:码农题,照这模拟就行,高精度的B进制,注意字符串反转的技巧. #include <iostream> #include <cstdio> #include <cst ...

  6. N进制加法

    我是网络公司的一名普通程序员,英文名Steven,发音比较像“师弟”,自从入职培训自我介绍后,大家就称我为“二师弟”,我喜欢看科幻小说,也喜欢做梦,有一次梦到外星球,发现外星人使用的并非10进制/16 ...

  7. hdu2100 26进制加法

    题意:       给你两个26进制数,让你算出他们两个的和. 思路:      水题不解释了,注意这样的数据 AAA AAA 输出A #include<stdio.h> #include ...

  8. 洛谷 P1952 火星上的加法运算_NOI导刊2009提高(3)

    P1952 火星上的加法运算_NOI导刊2009提高(3) 题目描述 最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限.她想向你求助,作为一位优秀的程序员,你当然不会拒 ...

  9. 【t079】火星上的加法运算

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限,想向你求助,作为一名 ...

随机推荐

  1. [ES6] Object.assign (with defaults value object)

    function spinner(target, options = {}){ let defaults = { message: "Please wait", spinningS ...

  2. Java 编程的动态性,第 7 部分: 用 BCEL 设计字节码--转载

    在本系列的最后三篇文章中,我展示了如何用 Javassist 框架操作类.这次我将用一种很不同的方法操纵字节码——使用 Apache Byte Code Engineering Library (BC ...

  3. 如何为Myeclipse手工添加dtd支持

    一.引言 在MyEclipse中开发三大框架的项目时候经常会写一些配置的xml文件,例如:Struts2的struts.xml和Hibernate的hibernate.cfg.xml.Spring的a ...

  4. ListActivity ListView 使用 介绍 用法

    ListActivity简单的说就是ListView和Activity的结合,跟ListView和Activity组合实现的没有什么很大的差别,主要是比较方便. 在实现时,要注意: 1.一般情况,Li ...

  5. 8、第八次课jquery第一节20151006

    1.JS JQUERY 的区别 jquery 底层基于js 它是对于JS进行封装,代码量比较少.[write less do more] 网上可以下载jquery 类库文件,写的时候需要智能提示在js ...

  6. 执行CMD命令

    可以执行多条命令,用“\r\n”分割 using System; using System.Diagnostics; namespace Tool { public class CMDHelper { ...

  7. <customErrors>节点说明1

    <customErrors>节点用于定义一些自定义错误信息的信息.此节点有Mode和defaultRedirect两个属性, 其中defaultRedirect属性是一个可选属性,表示应用 ...

  8. java swing 音乐播放器-乐乐音乐

    乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ...

  9. HDU 4611 - Balls Rearrangement(2013MUTC2-1001)(数学,区间压缩)

    以前好像是在UVa上貌似做过类似的,mod的剩余,今天比赛的时候受baofeng指点,完成了此道题 此题题意:求sum(|i%A-i%B|)(0<i<N-1) A.B的循环节不同时,会有重 ...

  10. poj1204之AC自动机

    Word Puzzles Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 8235   Accepted: 3104   Sp ...