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

害死人不偿命的(3n+1)猜想

时间:2020-01-05 22:30:58      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:main   一半   返回   nbsp   返回值   题目   efi   输入   print   

题目(卡拉兹猜想):对任何一个正整数,如果它是偶数,那么把他砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半;这样一直反复砍下去,最后一定在某一步得                                      n=1;问,需要多少步(砍几步)才能得到n=1(n<=1000)?

输入格式:

                    给出正整数n的值.

输出格式:

                   输出从n计算到1需要输出的步数.

 

 

#include <stdio.h>
#include <stdlib.h>
#define uint unsigned int

int main()
{
int n;
int count=0;
scanf("%d",&n);
while(n != 1)
{
if(n%2 == 0)
{
n = n/2;
}
else
{
n = (3*n+1)/2;
}
count++;
}
printf("%d",count);
return 0;
}

 

总结:

要养成写返回值的习惯;

程序如何停下(即while"()"的内容填什么);

如何实现输出;

还有最重要的是要细心 细心 细心!!!

害死人不偿命的(3n+1)猜想

标签:main   一半   返回   nbsp   返回值   题目   efi   输入   print   

原文地址:https://www.cnblogs.com/1-lizhi/p/12153816.html

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