noip2004初赛读程序之第4题,请c高手予以详解.

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:28:10
#include <stdio.h>
const int u[3] = {1, -3, 2};
const int v[2] = {-2, 3};
int g(int n){
int i, sum = 0;
for (i = 1; i <= n; i++) sum += u[i % 3] * i;
return sum;
}
int main(){
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) sum += v[i % 2] * g(i);
printf("%d\n", sum);
return 0;
}
输入:103
输出:

答案为400,请高手告知解题方法,谢谢.

for (i = 1; i <= n; i++) sum += u[i % 3] * i;
return sum;
这一句有问题。
变量i没有定义,应该写成int i=1;
for语句下面应该有大括号。比如{sum+=u[i%3]*i;......}

for (i = 1; i <= n; i++) sum += v[i % 2] * g(i);
这条语句同理。

return 0;
这里的"0"最好改成相应的变量