700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 逆序整数求和C语言 c语言 数字逆序相加

逆序整数求和C语言 c语言 数字逆序相加

时间:2024-07-22 02:25:37

相关推荐

逆序整数求和C语言 c语言 数字逆序相加

c语言 数字逆序相加

关注:267答案:3手机版

解决时间 -02-14 17:37

提问者一护の喵咪

-02-13 23:53

Description

数字逆序就是把原来的数字顺序颠倒过来,第一位变成最后一位,例如1245,逆序后就变成5421了。需要注意的是,所有的前导0都要被忽略。也就是说,0在逆序后会丢失,例如1200,逆序后就是21。因此,逆序后不会出现任何尾数为0的情况。

你的任务就是要对两个数字逆序后求和。当然,结果不唯一,因为有些特殊的数可能是某几个数逆序的结果,例如21可能是12,120或1200逆序得到的。这里假定没有0,也就是原始的数是12。

Input

输入包括N个样例,第一行是一个正整数N,接下来就是N行输入,每行包括两个正整数,空格隔开,它们都是需要你逆序后相加的数。

Output

对于每组样例,输出逆序后和的逆序。没有任何前导0。

3

24 1

4358 754

305 794

34

1998

1

#include

#include

#include

#include

int change(char *str)

{

int i,p,n;

p=0;

for(i=strlen(str)-1;i>=0;i--)

{

n=str[i]-'0';

if(n==0)

{

continue;

}

p+=n*pow(10,i);

}

return p;

}

main()

{

int x,f;

char p[8],q[8],g[8];

scanf("%d",&x);

while(x--)

{

scanf("%s %s",&p,&q);

f=change(p)+change(q);

itoa(f,g,10);

printf("%d\n",change(g));

}

return 0;

}

为什么提示的是wrong answer,输出输入都对的呀

最佳答案

二级知识专家千里故人稀

-02-14 01:22

scanf("%s %s",&p,&q);

应改为

scanf("%s %s",p,q);

pow应该自己写次方。我以前也是第一次用pow的时候不知道pow计算的是浮点型有精度误差,强行int结果WA了。。

全部回答

1楼嘴硬欠吻

-02-14 04:34

#include

intmain(intargc,char*argv[]){

intx,y,rx,ry,N,t,xy;

scanf("%d",&N);

while(N--){

scanf("%d%d",&x,&y);

for(rx=0,t=x;t;(rx*=10)+=t%10,t/=10);

for(ry=0,t=y;t;(ry*=10)+=t%10,t/=10);

for(xy=0,t=rx+ry;t;(xy*=10)+=t%10,t/=10);

printf("%d\n",xy);

}

return0;

}

2楼口袋里的自由

-02-14 03:01

假设x=2569

printf("%ld\t",a); 就是打印x的个位9

然后x除以10,x=256 原来的十位变成了个位

再调用pin()时,a=x%10得到的a=6 是打印原来x的十位

再除以10再调用pin(),得到打印原来x的百位

这样一直下去直到全部打印完,递归结束

printf("%ld\n",x); 应该是调试用的,影响显示的输出结果,可以去掉

我要举报

如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!

推荐资讯

大家都在看

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。