卡拉兹(Callatz)猜想(第三日附加题)

卡拉兹(Callatz)猜想:

对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。

输出格式:输出从n计算到1需要的步数。

输入样例:

3

输出样例:

5

程序参考:

#include <stdio.h>

int main()
{
int x;
int n=0;

//读数
scanf("%d",&x);

//判断,进入循环
while(x!=1){

//计数
n++;

//判断奇偶性,执行运算

if(x%2==1){
x=(3*x+1)/2;
}else{
x=x/2;
}
}

//输出
printf("%d",n);

return 0;
}

感想:

学长提供的一题。

意识到循环本身倒不是麻烦,循环计算才是重点吧。

时间: 2024-10-22 02:09:35

卡拉兹(Callatz)猜想(第三日附加题)的相关文章

PAT (Basic Level) Practise (中文)-卡拉兹(Callatz)猜想

卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展-- 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下

结对编程_附加题_博客2

1.界面模块,测试模块和核心模块的松耦合 2.改进程序 结对编程_附加题_博客2

2016届阿里实习生在线笔试附加题3

#include<iostream> using namespace std; int a[1000]; int waiting = 1; int main(){ int temp = 0; int i = 0; while(cin>>temp){ a[temp] = 1; if(temp == waiting){ cout<<waiting; for(i = waiting + 1;a[i] == 1;i++){ cout<<","&l

结对项目(附加题)开发总结

结对项目(附加题)开发总结 这次附加题的任务就是把两个小组写的独立的UI和CORE模块打乱重组,拼接成一个新的APP. 我们小组选择了大神刘乾所在小组和我们合作交换.一拿到乾神的核心代码,我不得不说,乾神就是乾神,代码一出,直接把我镇住了,各种参数看不懂咋办?咋写UI? 还好我们的乾神同志给我们提供了帮助文档,介绍了各个参数的作用,现摘录如下: 对于计算表达式的值(CALC模式): AnswerGet(string s)其中s是给定的算式,以等号结尾. 调用生成器时,使用: public Gen

结对项目附加题

我们与刘乾组进行了互换.附加题目遇到的问题比较多,且有些直到最后也难以解决. 其中最主要的问题在于,刘乾组的代码在给我们的时候并没有完全封装成dll的样子,虽然文档里列出了一些接口,但实质上都是一些可以直接使用的类.虽然能实现所有的功能,但形式上并不是我们想象中接口的样子.我们尝试将他们的数据结构转换为我们的数据结构,之后再做一个适配层,利用他们提供的接口,实现我们所定义的几个接口.然而,由于在接口的设计上大相径庭,完成这一转换所需的工作量相当大.于是,最终的适配层放弃了进行数据结构及接口的转换

结对项目(附加题)

结对项目成员:徐丞(13061203) 赖彦谕(13061212) [附加题]第四阶段目标 - 界面模块,测试模块和核心模块的松耦合. 我们小队是和付帅,赵庶宏组进行了交换测试,我们导出的静态链接库(.lib),然后在界面里include来调用.我们两个组都是用C++写的程序,用MFC写的界面.遇到的主要的问题,就是因为我们的想法有一些不同, API接口的设计和他们设计的接口有些不一致,所以导致我们的模块和他们的界面模块不能很好的连接. 为了解决这一问题,如果要修改我们设计好的API,那么就会修

[附加题] 结对项目对接的苦痛

[附加题] 结对项目对接的苦痛 本次很荣幸地,我的程序作为很多程序员队伍的备胎计算模块被加入了各大程序的附加题参考中,有以下几位同学都曾与我进行模块的对接: GNU_Linuxer 马克斯 kanelim PocketPanacea kibbon ruoyuwang 夜微凉evol 先来谈谈我作为计算模块的提供者的感受吧: 总的感受就几个字:请别吐槽我了... 我的代码质量我觉得还是可以的,但是在这过程中出现的最严重的问题是啥呢,是设计的问题,是设计者对于需求的理解和框架.接口统一与否的问题.

北京地铁_结对项目_附加题

地铁出行项目(续)- 附加题 团队成员:杨金键 谢振威 金豪 要求描述: 使程序支持不同城市的地图.请让程序能处理上海的地铁地图,或者其它城市的地图.把程序由 “固定处理一个地图” 升级为 “能处理多个地图”, 程序的什么模块需要变化? 其实,在我们设计程序之初就已经考虑到了程序将来的可扩展性,所以无论是地图储存文件还是代码我们都是从这个角度出发考虑的. 具体来说: 取消所有对于北京地图的特殊化处理,针对特殊的地方,例如环线或者单行线则定义关键词统一处理 所有地图相关信息都靠文件读取,避免地图相

结对项目——博客记录(附加题)

结对项目内容:http://www.cnblogs.com/jiel/p/4830912.html 结对成员:康家华,马腾跃(http://www.cnblogs.com/summerMTY) [附加题]第四阶段目标 - 界面模块,测试模块和核心模块的松耦合. 对于这个附加题,我们小队(A)决定和刘乾小队(B)的模块进行交换,于是在拿到对方的代码时,我们立刻就傻眼了. 不是说对方写的很差,相反,B小队的代码有刘乾的保证,质量很高.让我们傻眼的是因为我们的想法不是完全相同的,而我们设计的接口的要求