哪位大神可以帮在下看一下这两个程序为什么效率差这么多
题目是给定a和n,计算a+aa+aaa+a...a(n个a)的和
第一个显示运行50ms,第二个不到1ms
第一个显示运行50ms,第二个不到1ms
#include<stdio.h>
#include<math.h>
int main()
{
int i,j;
int a,n;
int k,t,tmp,idx;
while(scanf("%d %d",&a,&n)!=EOF)
{
int data[1000]={0};
k=0;
idx=0;
for(i=0;i<n;i++)
{
tmp=a*(n-i)+k;
k=tmp/10;
data[idx++]=tmp%10;
}
if(k!=0)
data[idx++]=k;
for(i=idx-1;i>=0;i--)
printf("%d",data[i]);
printf("\n");
}
return 0;
}
第二个 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N100
chars[N];
intmain() {
inti, l, f, tmp, idx,
a, n;
while(scanf("%d
%d", &a, &n) != EOF) {
l =0;
idx =0;
for(i =0; i <
n; ++i) {
tmp = (n -
i) * a + l;
f = tmp %10;
l = tmp /10;
s[idx++] = f
+'0';
}
if(l >0)
s[idx++] = l
+'0';
for(i = idx -1;
i >=0; --i) {
printf("%c", s[i]);
}
printf("\n");
}
return0;
}