标题:为什么答案是17
只看楼主
xutaoneu
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-2-12
 问题点数:0 回复次数:7 
为什么答案是17

高手帮忙看看这个程序,为什么答案是17,谢谢@!
问题描述:
这是一个古老的猜想:给定任何一个正整数n,对它进行以

下操作:
n是偶数:n=n/2
n是奇数:n=3*n+1
这样经过多步操作后,最后必定变为1
如对13进行操作: 13 -> 40 -> 20 -> 10 -> 5 -> 16 ->

8 -> 4 -> 2 -> 1
一共经历了9次操作,则称13这个数的周期是9

#include<stdio.h>
int pro(int n);
main()
{
int n,count=0;
printf("please input the numver: ");
scanf("%d",&n);
count=pro(n);
printf("the zhouqi is:%d",count);
getchar();
}

int pro(int n)
{
static int i=0;
if(n==1)
return ++i;
if(n%2==0)
{
n=n/2;
i++;
pro(n);
}
if(n%2==1)
{
n=n*3+1;
i++;
pro(n);
}
}

搜索更多相关主题的帖子: include please 正整数 count 
2007-09-06 20:28
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
得分:0 
什么17啊???
http://yzfy.org/bbs/viewthread.php?tid=115
这里哪来的17?


by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-06 20:32
yhb1987
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-9-2
得分:0 
  说清楚啊
2007-09-06 20:41
交流者
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-9-5
得分:0 
回复:(xutaoneu)为什么答案是17

#include<stdio.h>
int pro(int n);
main()
{
int n,count=0;
printf("please input the numver: ");
scanf("%d",&n);
count=pro(n);
printf("the zhouqi is:%d",count);
getchar();
}

int pro(int n)
{
static int i=0;
if(n==1)
return ++i;/*这里++i改成i,试试*/
if(n%2==0)
{
n=n/2;
i++;
pro(n);
}
if(n%2==1)
{
n=n*3+1;
i++;
pro(n);
}
}

2007-09-06 21:17
knight4423
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-29
得分:0 

#include <iostream>
using namespace std;
int pro(int n);
void main()
{
int n,count=0;
printf("please input the numver: ");
scanf("%d",&n);
count=pro(n);
printf("the zhouqi is:%d",count);
getchar();
}

int pro(int n)
{
static int i=1;
if(n==1)
return i;
if(n%2==0)
{
n=n/2;
i++;
pro(n);
return i; /* 函数嵌套调用值得注意的地方 */

}
if(n%2==1)
{
n=n*3+1;
i++;
pro(n);
return i; /* 函数嵌套调用值得注意的地方 */
}

}

2007-09-06 21:49
honestgrubby
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-8-5
得分:0 

#include <stdio.h>
using namespace std;
int pro(int n);
void main()
{
int n,count=0;
printf("please input the numver: ");
scanf("%d",&n);
count=pro(n);
printf("the zhouqi is:%d",count);
getchar();
}

int pro(int n)
{
static int i=0;
if(n==1)
return i;
if(n%2==0)
{
n=n/2;
i++;
pro(n);
return i;

}
if(n%2==1)
{
n=n*3+1;
i++;
pro(n);
return i;
}

}


向各位大侠学习!
2007-09-06 22:34
wzhgzj
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2007-9-6
得分:0 
怎么搞不来

命运在我手中
2007-09-06 23:28
xutaoneu
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-2-12
得分:0 
谢谢,明白了,太感谢了!
2007-09-07 22:43



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




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

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