返回信息流题目1003:A+B
时间限制:1 秒内存限制:32 兆特殊判题:否提交:16972解决:7043
题目描述:
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
输入:
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
输出:
请计算A+B的结果,并以正常形式输出,每组数据占一行。
样例输入:
-234,567,890 123,456,789
1,234 2,345,678
样例输出:
-111111101
2346912
我的代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char str1[20],str2[20];
int str2num(char[]);
int str2num(char a[]){
int i,ji=1,num=0;
if(a[0]=='-'){
for(i=strlen(a)-1;i>0;i--){
if(a[i]!=','){
num=num+(a[i]-'0')*ji;
ji=ji*10;
}
}
num=-num;
}
else{
for(i=strlen(a)-1;i>=0;i--){
if(a[i]!=','){
num=num+(a[i]-'0')*ji;
ji=ji*10;
}
}
}
return num;
}
int main(){
int num1,num2;
while(scanf("%s",str1)&&scanf("%s",str2)){
num1=str2num(str1);
num2=str2num(str2);
printf("%d\n",num1+num2);
}
// system("pause");
return 0;
}
显示output limit exceed,不知道错在哪,求解
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #90447同步于 2016/7/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
一道九度OJ上的机试题A不过求解
postgraduate
2016/7/11镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 postgraduate 的大作中提到: 】
: 题目1003:A+B
: 时间限制:1 秒内存限制:32 兆特殊判题:否提交:16972解决:7043
: 题目描述:
: ...................
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char str1[20],str2[20];
long long str2num(char a[]){
long long i,ji=1,num=0;
if(a[0]=='-'){
for(i=strlen(a)-1;i>0;i--){
if(a[i]!=','){
num=num+(a[i]-'0')*ji;
ji=ji*10;
}
}
num=-num;
}
else{
for(i=strlen(a)-1;i>=0;i--){
if(a[i]!=','){
num=num+(a[i]-'0')*ji;
ji=ji*10;
}
}
}
return num;
}
int main(){
long long num1,num2;
while(scanf("%s",str1) + scanf("%s",str2) != -2){
num1=str2num(str1);
num2=str2num(str2);
printf("%lld\n",num1+num2);
}
// system("pause");
return 0;
}
【 在 postgraduate 的大作中提到: 】
: 题目1003:A+B
: 时间限制:1 秒内存限制:32 兆特殊判题:否提交:16972解决:7043
: 题目描述:
: ...................
错误很明显啊~你的计算结果太大了,int类型的根本放不下。你想给你一个这样的数字321,321,111,222,333,333,555,555,555 你int型怎么装?这个要用三位数计算,再用字符串输出
【 在 aquamarine 的大作中提到: 】
:
: [code=c]
: #include<stdio.h>
: ...................
题目中不是限定了(-10^9 < A,B < 10^9)吗,int应该够用啊,但是改成long型确实就可以了,为啥
【 在 postgraduate 的大作中提到: 】
:
: 题目中不是限定了(-10^9 < A,B < 10^9)吗,int应该够用啊,但是改成long型确实就可以了,为啥
问题不在long long,在输入数据的处理上。
用long long只是习惯。
或许后台机器上一个int两个字节。。。。。
【 在 postgraduate 的大作中提到: 】
:
: 题目中不是限定了(-10^9 < A,B < 10^9)吗,int应该够用啊,但是改成long型确实就可以了,为啥