| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 396 人关注过本帖
标题:练习题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
快速回复:练习题3
数据加载中...
 
   



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

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