| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:翻版的很大整数相加
取消只看楼主 加入收藏
傻瓜菜
Rank: 2
来 自:earth
等 级:论坛游民
帖 子:73
专家分:66
注 册:2011-10-4
结帖率:94.44%
收藏
已结贴  问题点数:20 回复次数:1 
翻版的很大整数相加
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char a[100],b[100],temp[100];
    int pa[100],pb[100],n,i,la,lb,j,k;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%s %s",a,b);
        la=strlen(a);
        lb=strlen(b);
        if(la<lb)
        {
            strcpy(temp,a);
            strcpy(a,b);
            strcpy(b,temp);
            j=la;
            la=lb;
            lb=j;
        }
        j=0;
        for(i=la-1;i>=0;i--)
            pa[j++]=a[i]-'a'+1;
        pa[j]=0;
        j=0;
        for(i=lb-1;i>=0;i--)
            pb[j++]=b[i]-'a'+1;
        for(i=0,k=0;i<la,k<lb;i++,k++)
        {

            pa[i]+=pb[k];
            if(pa[i]>26)
            {
                pa[i]-=26;
                pa[i+1]++;
            }
        }
        if(pa[la]!=0) j=la;
        else j=la-1;
        for(i=j;i>=0;i--)
            printf("%c",pa[i]+'a'-1);
        printf("\n");
        if(n)
            printf("\n");
    }
    return 0;
}

Description

计算A+B,但是这里A,B表示的是字符串。并且'a'表示1,'b'表示2...'z'表示26,如果两个字母相加的结果超过26,就进位。如:abcdef+aaaaaa,结果为bcdefg,a+z=aa.

Input

第一行为N,表示接下来有N组测试数据。接下来的N行表示N组测试数据,每组测试数据包含两个字符串,中间用空格隔开,并且保证每个字符串中的字符都是小写字母。

Output

输出A+B的结果,输出要求也是字符串。每两组数据之间有一个空行。

Sample Input

2
abcdef aaaaaa
a z
Sample Output

bcdefg

aa
2012-03-04 09:37
傻瓜菜
Rank: 2
来 自:earth
等 级:论坛游民
帖 子:73
专家分:66
注 册:2011-10-4
收藏
得分:0 
回复 2楼 laoyang103
http://acm.zjgsu.
不过已经解决了,zzz+zzz 这种情况有问题
2012-03-04 11:02
快速回复:翻版的很大整数相加
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026836 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved