火星A+B

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10634 Accepted Submission(s):
3547

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<stdio.h>
#include<string.h> int prime[]= {,,,,,,,,,,,,,,,,,,,,,,,,,};
int a[],b[],sum[];
char aa[],bb[];
int main()
{
char ch;
int i,j,k;
while(scanf("%s%s",aa,bb)!=EOF)
{
if(strlen(aa)==&&strlen(bb)==&&aa[]==''&&bb[]=='')
break;
// printf("%s\t%s\n",aa,bb);
for(i=;i<;i++)
a[i]=b[i]=sum[i]=;
int lena=,temp=;
for(i=; i<strlen(aa); i++)
{
if(aa[i]!=',')
{
temp*=;
temp+=aa[i]-''; }
// printf("%d\t",temp);
if(aa[i]==',')
{
a[lena++]=temp;
temp=;
}
}
a[lena]=temp;
// for(i=0;i<=lena;i++)
// printf("%d\t",a[i]);
// printf("\n");
int lenb=;
temp=;
for(i=; i<strlen(bb); i++)
{
if(bb[i]!=',')
{
temp*=;
temp+=bb[i]-''; }
if(bb[i]==',')
{
b[lenb++]=temp;
temp=;
}
}
b[lenb]=temp;
// for(i=0; i<=lenb; i++)
// printf("%d\t",b[i]);
// printf("\n");
int len=;
int cnt=;//进位
// printf("a[lena]=%d\tb[lanb]=%d\n",a[lena],b[lenb]);
for(i=lena,j=lenb,k=;i>=||j>=;k++,i--,j--)
{
if(i<) sum[k]+=b[j];
else if(j<) sum[k]+=a[i];
else sum[k]+=a[i]+b[j]; if(sum[k]>=prime[k])
{
sum[k]-=prime[k];
sum[k+]++;
}
} printf("%d",sum[k]>?sum[k]:sum[--k]);
for(i=k-;i>=;i--)
{
printf(",%d",sum[i]);
}
printf("\n");
} return ;
}

火星A+B(hdu1230)进制转化的更多相关文章

  1. 【风马一族_C】进制转化

    #include "stdio.h" #include "Math.h" #define number 50 //设置数组的长度 int num10; //十进 ...

  2. HDU_1230——火星A+B,加法进制问题

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

  3. c语言进制转化

    #include <stdio.h> // 进制转化 int main(void) { ; ; int i3 = 0x32C; printf( printf( printf("十 ...

  4. 编码/解码和进制转化工具hURL

    编码/解码和进制转化工具hURL   在安全应用中,各种编码方式被广泛应用,如URL编码.HTML编码.BASE64等.而在数据分析时候,各种进制的转化也尤为频繁.为了方便解决这类问题,Kali Li ...

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

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

  6. HDU5050:Divided Land(大数的进制转化与GCD)

    题意:给定大数A和B,求gcd.所有数字都是二进制. 思路:先输入字符串,再转化为大数,然后用大数的gcd函数,最后转化为字符串输出. 利用字符串和大数转化的时候可以声明进制,就很舒服的完成了进制转化 ...

  7. python数据结构:进制转化探索

    *********************************第一部分*************************************************************** ...

  8. 《N诺机试指南》(五)进制转化

    进制转化类题目类型: 代码详解及注释解答:  //进制转化问题 #include <bits/stdc++.h> using namespace std; int main(){ // 1 ...

  9. P1017进制转化

    P1017进制转化 也不知道为啥,这么简单的题困扰了我这么长时间 #include<cstdio> using namespace std; int m; //被除数= 除数*商 + 余数 ...

随机推荐

  1. MVC 视图不使用模板页的两种方法

    直接对view页面的Layout值设置null @{ Layout = null;//"~/Views/Shared/_Layout.cshtml"; } 对_ViewStart. ...

  2. 对drf的初步认识

    web应用模式 1.前后端不分离 在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高. 这种应用模式比较适合纯网 ...

  3. MapReducer

    MapReducer    概述        是一个分布式的计算框架(编程模型),最初由由谷歌的工程师开发,基于GFS的分布式计算框架.后来Cutting根据<Google Mapreduce ...

  4. 人工智能-机器学习之Selenium(chrome驱动,火狐驱动)

    selenium是一个用于web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla Suite等 ...

  5. df换行问题解决

    df换行问题解决 df是linux下用来查磁盘空间的命令,而在使用了LVM分区或网络挂载的情况下,再用df取分区的使用率时,发现有些分区显示换行了,这样会导致通过脚本取的数据不对. [root@ ]# ...

  6. MyEclipse 编写 JSP 代码时很卡的解决办法

    在网上看到很多方法,都是尝试过,个人感觉都没有说到重点,所以收效甚微. 后来自己总结了一下: 我们都是习惯在MyEclipse 工具,双击jsp 文件打开进行编辑.这时,工具会打开窗口的 Previe ...

  7. vue仿微信网页版|vue+web端聊天室|仿微信客户端vue版

    一.项目介绍 基于Vue2.5.6+Vuex+vue-cli+vue-router+vue-gemini-scrollbar+swiper+elementUI等技术混合架构开发的仿微信web端聊天室— ...

  8. java中连接各种数据的方法

    1.oraclethin驱动连接字符串:jdbc:oracle:thin:用户名/密码@localhost:1521:cake驱动类:oracle.jdbc.driver.OracleDriver 2 ...

  9. awk将某个字段按照分隔符分割之后统计次数

    cat label_movie2|grep BBD252CC0A4FE7D10C990261D5CEACB5|awk -F "," '{for(i=2;i<NF;i++) p ...

  10. docker with redis

    docker run --name myredis -d -v /home/rudy/pro/database/redis:/data -p : --privileged=true redis