加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

hdu2100Lovekey

发布时间:2020-12-14 04:03:12 所属栏目:大数据 来源:网络整理
导读:1.题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2100 ? 2.说明: ????? 两个大数相加的另类题目。 ? 3.参考代码: ? #include stdio.h#include string.hint main(){char str1[1000],str2[1000];int a[1000],b[1000],c[2000];int i,j,k,flag;char c

1.题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2100

?

2.说明:

????? 两个大数相加的另类题目。

?

3.参考代码:

?

#include <stdio.h>
#include <string.h>

int main()
{
	char str1[1000],str2[1000];
	int a[1000],b[1000],c[2000];
	int i,j,k,flag;
	char ch;
	int l1,l2,maxlen;
	
	while(~scanf("%s %s",str1,str2))
	{
		memset(a,sizeof(a));   ///初始化
		memset(b,sizeof(b));
		memset(c,sizeof(c));
		
		l1=strlen(str1);
		l2=strlen(str2);
		
		maxlen=l1>l2?l1:l2;   ///取最大的长度
		
		flag=0;
		
		k=0;
		for(i=l1-1;i>=0;i--)   ///记得逆序
			a[k++]=str1[i]-65;
		
		k=0;
		for(i=l2-1;i>=0;i--)   ///记得逆序
			b[k++]=str2[i]-65;
		
		for(i=0;i<maxlen;i++)
		{
			c[i]+=(a[i]+b[i]);   ///相加
			
			if(c[i]>25)   ///进位思想
			{
				c[i+1]++;
				c[i]%=26;
			}
		}
		
		i=2000;
		while(i--)
		{
			if(c[i])
				break;
		}
		
		for(;i>=0;i--)
		{
			for(j=0;j<=25;j++)
			{
				if(c[i]==j)
				{
					flag=1;
					ch=j+65;
					printf("%c",ch);
				}
			}
		}
		
		if(flag==0)   ///如果2个全是A,则结果为一个A
			printf("A");
		
		printf("n");
	}
	
	return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读