本题要求实现一个用递归计算 1 + 2 + 3 + … + n 的和的简单函数。
函数接口定义:
int sum( int n );
该函数对于传入的正整数 n 返回 1 + 2 + 3 + … + n 的和;若 n 不是正整数则返回 0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。
裁判测试程序样例:
#include <stdio.h>
int sum( int n );
int main()
{
int n;
scanf("%d", &n);
printf ("%d\n", sum(n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例1:
10
输出样例1:
55
输入样例2:
0
输出样例2:
0
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/12/exam/problems/350
提交:
题解:
/*
* 递归计算 1 到 n 之和
*/
int sum(int n) {
int result;
if (n <= 0) {
result = 0;
} else if (n == 1) {
result = 1;
} else {
result = n + sum(n - 1);
}
return result;
}