杭电ACM 1002题 总是说我Output Limit Exceeded 超时。。。大神们帮我看看怎么改

#include<stdio.h>#include<string.h>intmain(){chara[1001],b[1001];intn,la,lb,i,j,lmax,... #include<stdio.h>
#include<string.h>
int main()
{
char a[1001],b[1001];
int n,la,lb,i,j,lmax,k,num=1;
scanf("%d",&n);
getchar();
for(i=1;i<=n;i--)
{
int c[1001]={0},d[1001]={0},e[1001]={0};
scanf("%s",a);
la=strlen(a);
for(j=0;j<=la-1;j++)
c[j]=a[la-1-j]-'0'; //把字符格式的数字转化为整形;把数组a中数字以整形形式倒赋给数组c,即a的最后一位数给c的第一个数
scanf("%s",b);
lb=strlen(b);
for(j=0;j<=lb-1;j++)
d[j]=b[lb-1-j]-'0';
if(la>lb)
lmax=la;
else
lmax=lb;
k=0;
for(j=0;j<=lmax-1;j++)
{
e[j]=(c[j]+d[j]+k)%10; //相当于把数组a的末位加上数组b的末位,余数留下来
k=(c[j]+d[j]+k)/10; //如果相加大于等于十,则进位一,加到前一位上,继续计算
}
if(k!=0)
e[lmax]=1; //如果最高位相加要进位,则再多一个1
printf("Case%d:",num);
num++;
printf("%s+%s=",a,b);
if(e[lmax]==1)
printf("1");
for(j=lmax-1;j>=0;j--)
{printf("%d",e[j]);}
printf("\n");
if(n>=1)
printf("\n");
}
return 0;
}
展开
 我来答
White_MouseYBZ
推荐于2016-02-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6768万
展开全部
把for(i=1;i<=n;i--)中的i--改成i++试试吧,不然几乎是死循环,当然要超时……
追问
还是显示的超时
追答

没有发现超时的硬性原因,总觉得写得累赘了些,比如变换成int数组就没有必要;但不致于超时啊。我写了一个你试试,如果不超时,你就对照找原因。

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
int main(void){
    char a[1001],b[1001],*pa,*pb;
    int n,i,j,x=0;
    scanf("%d",&n);
    while(x++<n){
        scanf("%s%s",a,b);
        printf("Case%d: %s+%s=",x,a,b);
        strlen(a)>=strlen(b) ? (pa=a,pb=b) : (pa=b,pb=a);
        for(i=strlen(pa)-1,j=strlen(pb)-1;j>=0;pa[i--]+=(pb[j--]-'0'));
        for(i=strlen(pa)-1;i>0;i--)
            if(pa[i]>'9'){
                pa[i-1]++;
                pa[i]-=10;
            }
        if(*pa>'9'){
            printf("1");
            *pa-=10;
        }
        printf("%s\n",pa);
    }
    return 0;
}
易捷测试
2024-10-23 广告
load pull的简单原理是使用一个叫tuner的东西,可理论模拟任意阻抗的负载,(你可以把tuner想像成一个一段并联传输线和一段串联传输线的组合器件,而传输线的长度和阻抗都是可调的,那么通过调节即可遍历smith原图的任意位置)实际测... 点击进入详情页
本回答由易捷测试提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式