递归函数分段求和
XYOJ欢迎访问http://xyoj.xynu.edu.cn/ranklist.php练习系统链接
题目描述
请设计一个递归分段求和函数Sum(int Start, int End)用于计算Start至End间的整数的和,当Start<End时计算Sum= Start + (Start + 1) + ……+ (End - 1) + End;当Start=End时则返回Start;当Start>End时则返回0。
输入格式
输入包含多组测试数据,每组测试数据包含两个整数Start与End。
输出格式
输出每组测试数据的计算结果,每组测试数据的计算结果占一行。
输入样例
20 30
56 50
5 5
输出样例
275
0
5
数据范围与提示
请严格按照 样例输入 和 样例输出 的格式来编写程序的输入和输出,不需要额外增加诸如“请输入…”等辅助性提示。
===========================
分析
根据题目已知公式:Sum= Start + (Start + 1) + ……+ (End - 1) + End
可定义函数sum
代码示例
#include<iostream>
using namespace std;
int sum(int start, int end) {
if (start < end) {
return start + sum(start + 1, end);
}
else if (start == end) {
return start;
}
else {
return 0;
}
}
int main() {
int start, end;
while (cin >> start >> end) {
cout << sum(start, end) << endl;
}
return 0;
}