标题:练习题3
只看楼主
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
已结贴  问题点数:30 回复次数:5 
练习题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
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
得分:0 
可以用递归不?
2011-06-25 19:07
夜叶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:189
注 册:2011-5-7
得分:0 
同二楼问
2011-06-25 19:13
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:0 
肯定只有递归能做啦。呵呵

My life is brilliant
2011-06-25 19:27
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
围观。。。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-25 20:28
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
得分:30 
程序代码:
#include<stdio.h>

int main() {
    int i, j;
    printf("Give me 2 integers: ");
    scanf("%d %d", &i, &j);
    printf("%d", (i + j) * ((i > j ? i - j : j - i) + 1) / 2);
    return 0;
}
2011-06-25 23:05



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




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

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