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刷水題,哈哈····別鄙視我,都是你們逼我的···上個星期我應該是刷題最少的人···所以勤奮點,去刷水題,哈哈,嘻唰唰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章