码迷,mamicode.com
首页 > 其他好文 > 详细

3n+1

时间:2014-06-10 14:59:11      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:c++   函数   

对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。编写程序要求:对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1? 输入格式: 多组数据,每行一个整数0<n<=100000 输出格式: 每行一个数,表示结果。

代码如下:

#include <iostream>
using namespace std;
int fun(int);
void main()
{
	cout<<"enter the number: ";
	int n;
	cin>>n;
	int counter=0;
	while(n!=1)
	{
		n=fun(n);	
		counter++;
	}
	cout<<counter<<endl;
}
int fun(int x)
{
	if(x%2==0)
	{
		return x/2;
	}
	else
	{
		return (3*x+1)/2;
	}
}


3n+1,布布扣,bubuko.com

3n+1

标签:c++   函数   

原文地址:http://blog.csdn.net/daida2008/article/details/29561289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!