九度oj 题目1016:火星A+B
- 题目描述:
-
读入两个不超过25位的火星正整数A和B,计算A+B。需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数。例如:地球上的10进制数2,在火星上记为“1,0”,因为火星个位数是2进制的;地球上的10进制数38,在火星上记为“1,1,1,0”,因为火星个位数是2进制的,十位数是3进制的,百位数是5进制的,千位数是7进制的……
- 输入:
-
测试输入包含若干测试用例,每个测试用例占一行,包含两个火星正整数A和B,火星整数的相邻两位数用逗号分隔,A和B之间有一个空格间隔。当A或B为0时输入结束,相应的结果不要输出。
- 输出:
-
对每个测试用例输出1行,即火星表示法的A+B的值。
- 样例输入:
-
1,0 2,1
4,2,0 1,2,0
1 10,6,4,2,1
0 0
- 样例输出:
-
1,0,1
1,1,1,0
1,0,0,0,0,0
这道题比较诡异,题目中说两个不超过25位的A,B是指int数组不超过25位,而转化为char后就不止25位了,因为这个原因run time error了两次,代码如下#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#define MAX 300
int prom[MAX] = {,,,,,,,,,,,,,,,,,,,,,,,,,,,};
char A[MAX];
char B[MAX];
int ans[MAX]; int isNEnd() {
if(strcmp(A,"") == && strcmp(B,"") == ) {
return ;
}
else {
return ;
}
} int main(int argc, char const *argv[])
{
memset(A,-,sizeof(A));
memset(B,-,sizeof(B)); scanf("%s %s",A,B);
while(isNEnd()) {
int lenA = strlen(A);
int lenB = strlen(B);
int i = lenA - , j = lenB - ;
int wtemp = ;
int bitb = ;
int bitc = ;
while(i >= || j >= ) {
int i0 = i;
int j0 = j;
int numa = , numb = ;
while(i >= && A[i] != ',') {
//printf("%d\n",A[i]);
i--;
}
if(i0 >= ) {
for(int k = i + ; k <= i0; k++) {
numa = numa * + A[k] - '';
}
} while(j >= && B[j] != ',') {
//printf("%d\n",B[j]);
j--;
}
if(j0 >= ) {
for(int k = j + ; k <= j0; k++) {
numb = numb * + B[k] - '';
}
} int bit = numa + numb + bitc;
bitb = bit % prom[wtemp];
bitc = bit / prom[wtemp];
ans[wtemp] = bitb;
i--;
j--;
wtemp++;
}
if(bitc != ) {
ans[wtemp] = bitc;
wtemp++;
}
for(int i = wtemp -; i >= ; i--) {
printf("%d,",ans[i]);
}
printf("%d\n",ans[]);
scanf("%s %s",A,B);
} return ;
}
九度oj 题目1016:火星A+B的更多相关文章
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 九度oj题目&吉大考研11年机试题全解
九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码). http://ac.jobdu.com/problem.php?pid=11 ...
- 九度oj 题目1007:奥运排序问题
九度oj 题目1007:奥运排序问题 恢复 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ题目1105:字符串的反码
tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...
- 九度oj题目1009:二叉搜索树
题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...
- 九度oj题目1002:Grading
//不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...
- 九度OJ题目1003:A+B
while(cin>>str1>>str2)就行了,多简单,不得不吐槽,九度的OJ真奇葩 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号", ...
随机推荐
- Hibernate三种批量处理数据
概念:批量处理数据是指在一个事务场景中处理大量数据. 在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 execute ...
- Glide图片框架
//加载圆形图片Glide.with(this).load(WSCAppStatic.WEB_KEFU_PHOTO_URL+ "?usercode=8120000315") .as ...
- [windows]win7设置wifi热点
1.启用并设定虚拟WiFi网卡:netsh wlan set hostednetwork mode=allow ssid=whylaughing key=124025621 2.开启无线wifi网络: ...
- Spring MVC系列[2]——参数传递及重定向
1.目录结构 2.代码 <?xml version="1.0" encoding="UTF-8"?> <web-app version=&qu ...
- SQL简单查询后续记录
--首先创建数据库TEST CREATE DATABASE TEST --创建表tb_user USE TEST CREATE TABLE [tb_user]( [name] [nvarchar] ( ...
- X11/extensions/XShm.h: No such file or directory
CentOS 编译一些开源项目提示:X11/extensions/XShm.h: No such file or directory. 运行命令:yum install libXext-devel就可 ...
- UVA 1220 Party at Hali-Bula (树形DP)
求一棵数的最大独立集结点个数并判断方案是否唯一. dp[i][j]表示以i为根的子树的最大独立集,j的取值为选和不选. 决策: 当选择i时,就不能选择它的子结点. 当不选i时,它的子结点可选可不选. ...
- JAVA 配置
JAVA 版本为jdk-7u25-windows-x64 Java 下载地址为: .CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.j ...
- 文本编辑器vim/vi用法完全解读
vi用法 1.启动vim 2.命令模式和输入模式 3.退出vi 4.vi与ex命令 5.移动光标 6.跳转 7.搜索 8.插入文本 9.修改文本 10.替换文本 11.删除文本 12.恢复和撤销改变 ...
- dfs染色法判定二分图
#include<iostream> #include<cstring> using namespace std; ][],color[],n; int dfs(int x,i ...