#include <stdio.h>
int main()
{
int x, n;
scanf("%d %d", &x, &n);
long long sum=0;
int a=x, i;
for(i=0; i<n; i++){
sum+=x;
x=x*10+a;
}
printf("S = %lld\n", sum);
return 0;
}
** 以上是半对代码
#include<stdio.h>
int main() {
int A, N;
scanf("%d %d", &A, &N);
long long sum = 0;
long long temp = 0;
for(int i = 0; i < N; i++) {
temp = temp * 10 + A;
sum += temp;
}
printf("S = %lld\n", sum);
return 0;
}
**以上是全对的代码
两者看着几乎一摸一样,可仅仅也只是“几乎”。
1、相同点:两者算法一样/
A, AA, AAA.....可以先定一个初始量A,接着AA就是A*10+A......
最后直接写sum,且sum都用long long定义了。
2、不同点(关键点):
第一个代码的中间量(x)类型是int,第二个代码的中间量(temp)类型是long long。
为什么?
因为假如说n=15,随着数字的递增,int的范围承载不下,因此就无法给你正确输出sum,即使sum用long long定义也不行,因为中间量就错了。