火星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. KVM虚拟机配置

    KVM 全称是 Kernel-Based Virtual Machine.也就是说 KVM 是基于 Linux 内核实现的,KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存. 在 ...

  2. 07_python_集合深浅拷贝

    一.join li = ["李嘉诚", "麻花藤", "林海峰", "刘嘉玲"] s = "_".j ...

  3. mysql多列索引和最左前缀

    数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度.索引优化是数据库优化的最重要手段. 如果查询语句使用 ...

  4. CSS3盒子模型(上)

    CSS的盒子模型分为三个大模块: 盒子模型 . 浮动 . 定位,其余的都是细节.要求这三部分,只要是学前端的无论如何也要学的非常精通. 所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就 ...

  5. Windows Phone开发手记-WinRT下自定义圆形ItemsControl

    这里的ItemsControl指的是Xaml里的集合控件,包括ListView,GridView等,此篇博客主要参考MSDN Blog的一篇文章,具体出处为:http://blogs.msdn.com ...

  6. 关于c++类的一些知识的总结

    1.经常会听到“类的声明.类的定义.类的实现”,它们之间有什么不一样? 经过查阅https://www.cnblogs.com/kkshaq/p/4660073.html博客的说法,类的声明是在.h文 ...

  7. Oracle 11g安装时针对不同操作系统所需的依赖包查询地址

    http://docs.oracle.com/cd/E11882_01/install.112/e24326/  点击连接,出现页面,往下滑动:)

  8. 关于 ASP.NET Web 应用中 async/await 注意问题

    System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.T ...

  9. JS获取当前时间和日期

    当前时间和日期 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1 ...

  10. 制作windows服务

    1.下载winsw-1.8-bin.exe并更名: 2.配置winsw-1.8-bin.exe同上名<?xml version="1.0" encoding="UT ...