哪位大神可以帮在下看一下这两个程序为什么效率差这么多
题目是给定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;
}