首页 > 代码库 > 3n+1
3n+1
对任何一个自然数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; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。