| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:死循环?信息竞赛题难道有问题?
只看楼主 加入收藏
w353568509
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
死循环?信息竞赛题难道有问题?
#include <iostream>
using namespace std;

const int NUM = 5;

int r(int n)
{
    int i;
    if (n <= NUM)
        return n;
    for (i = 1; i <= NUM; i++)
        if (r(n - i) < 0)
            return i;
    return -1;
}

int main()
{
    int n;
        
    cin>>n;
    cout<<r(n)<<endl;
    return 0;
}

输入:16
输出:_________


以上是代码段
据我观察,这段是死循环,因为输入的是16,各位帮忙看看,有时间的希望给点分析。。。。。
搜索更多相关主题的帖子: include 信息 竞赛题 
2012-06-03 23:59
w353568509
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-12
收藏
得分:0 
没人看?不是吧
2012-06-04 00:01
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:4 
既然递归有合法的结束条件   怎么会死循环?

不管怎么走、总有一个终点...
2012-06-04 08:12
zspsspsp
Rank: 2
等 级:论坛游民
帖 子:14
专家分:15
注 册:2012-3-7
收藏
得分:4 
不是死循环吧 。有答案的请指教
2012-06-04 11:59
w353568509
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-12
收藏
得分:0 
我用vc测试这代码,很长时间都没反应啊
2012-06-04 22:14
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:4 
很容易观察出一个规律:
r(1)=1,r(2)=2,r(3)=3,r(4)=4,r(5)=5;
r(6)等于什么呢?你会发现在for循环中就是一直在求r(5),r(4)...r(1)的值,但是他们都是大于0的,所以r(6)=-1;
r(7)等于什么呢?当递归到r(7-1)时发现值小于1,就返回1,说以r(7)=1;
r(8)呢?由于r(7)>0,而递归到r(8-2)时发现小于0,返回2,所以r(8)=2;
r(9)呢?由于r(8)>0,r(7)>0,而递归到r(9-3)时发现小于0,返回3,所以r(9)=3;
不难得出:r(10)=4,r(11)=5;
但是,r(12)等于多少呢?发现r(12-1),r(12-2),r(12-3),r(12-4),r(12-5)都是大于0的,所以r(12)=-1;
然后循环开始了,r(12),r(13),r(14),r(15),r(16),r(17)的值分别为-1,1,2,3,4,5。六个数一个轮回。
r(16)=4。
2012-06-04 22:56
hodhi
Rank: 2
等 级:论坛游民
帖 子:11
专家分:31
注 册:2011-9-15
收藏
得分:4 
图片附件: 游客没有浏览图片的权限,请 登录注册

运行结果截图 说明一切
2012-06-04 23:15
王璞之_xx
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2012-6-4
收藏
得分:4 
是的,你的怀疑是对的,这代码有问题,是死循环。没有结果,要相信自己。
2012-06-04 23:19
快速回复:死循环?信息竞赛题难道有问题?
数据加载中...
 
   



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

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