标题:练习题3
取消只看楼主
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
已结贴  问题点数:30 回复次数:1 
练习题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 编辑 ]
搜索更多相关主题的帖子: 参考答案 练习题 悬赏分 color 5050 
2011-06-25 18:31
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:0 
肯定只有递归能做啦。呵呵

My life is brilliant
2011-06-25 19:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-343974-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059181 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved