练习题3
写一个函数,给定参数i, j。如果i < j 则计算i + (i + 1) + (i + 2) + (i + 3) + ... + j 的和。
如:printf("%d\n", sum(1, 10));
输出:55
如果i > j 则计算 i + (i - 1) + (i - 2) + (i - 3) + ... + j 的和;
如:printf("%d\n", sum(10, 1));
输出:55
如:printf("%d\n", sum(-100, -1));
输出:-5050
如:printf("%d\n", sum(-1, -10));
输出:-55
补充:
不能使用循环、goto等语句。
悬赏分:30
参考答案:
程序代码:
#include <stdio.h> int sum(int i, int j) { if(i == j) return i; return i > j ? j + sum(i, j + 1) : j + sum(i, j - 1); } int main(void) { printf("%d\n", sum(-100, -1)); return 0; }
看了6L,令人蛋疼的代码后,我果断决定再出一题,从练习5开始就由voidx出题了....,大家要跟上哦。。。。
[ 本帖最后由 lz1091914999 于 2011-6-25 23:37 编辑 ]