NYOJ---272题Adding Reversed Numbers

水题一道·····纯粹拿来练手的。昨天经过接近28个小时的颠簸终于人模狗样的到家了。晚上美美的睡了一觉。早上习惯性的又醒了(6点多啊,多悲剧····)今天就忙着扯网线,弄无线路由。下午开始过以前那种吃饭靠喊,睡觉没人管的日子了。下午开始调整状态,刷出来了一道水题。很是坑人的一道题。竟然用到大数加法,最后还有陷阱·····具体的看注释吧,我就不写思路了。

原题地址:点击打开链接

代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
	int i,j,len1,len2,up,len,k,l,n,m,c[1000],d[1000];
	char a[1000],b[1000];
	scanf("%d",&n);
	while(n--)
	{
		memset(d,0,sizeof(d));
		memset(c,0,sizeof(c));
		scanf("%s %s",a,b);
		len1=strlen(a);
		len2=strlen(b);
		len=len1>len2?len1:len2;//找到最高位数
		for(i=0;i<len1;i++)
			c[i]=a[i]-'0';
		for(j=0;j<len2;j++)
			d[j]=b[j]-'0';
		for(i=0,up=0;i<=len;i++)//此乃大数加法的模版,甚是鄙视某人,坑人···
		{
			c[i]=c[i]+d[i]+up;
			up=c[i]/10;
			c[i]%=10;
		}
		for(i=0;i<=len;i++)//判断是否前缀0
		  if(c[i])break;
		for(j=i;j<len;j++)
			printf("%d",c[j]);
		if(c[len]==1)printf("1");//又是陷阱,至于为什么,自己悟吧,如果直接告诉你,我心里多不平衡啊。嘿嘿
		printf("\n");
	}return 0;
}

其实这个题不值得写博文,只是想借这个机会发发牢骚,让你们知道我的近况。今天算是进入状态吧。嘿嘿,明天开始去各大OJ刷水题,哈哈····别鄙视我,都是你们逼我的···上个星期我应该是刷题最少的人···所以勤奋点,去刷水题,哈哈,嘻唰唰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值