博客
关于我
PAT(Basic Level)1001 (3n+1)猜想
阅读量:558 次
发布时间:2019-03-09

本文共 574 字,大约阅读时间需要 1 分钟。

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

卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。

对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?
输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。
输出格式: 输出从 n 计算到 1 需要的步数。
解:

#include
using namespace std;int getNum(){ int a=0; cin>>a; return a;} int count(int a){ int i=0; while(a!=1){ if(a%2){ a=(3*a+1)/2; } else{ a=a/2; } i++; } return i;}int main(){ int a,i; a=getNum(); i=count(a); cout<
<

VS运行结果:输入7,需要11次。

VS运行结果

转载地址:http://slvpz.baihongyu.com/

你可能感兴趣的文章
Mysql新建用户和数据库并授权
查看>>
mysql日志
查看>>
mysql日志文件
查看>>
mysql日志管理学习笔记
查看>>
mysql日志问题定位实用命令
查看>>
MySQL日期时间函数大全
查看>>
mysql时间相减的问题
查看>>
mysql时间表示和计算
查看>>
mysql更新一个表里的字段等于另一个表某字段的值
查看>>
Mysql更新时间列只改日期为指定日期不更改时间
查看>>
MySQL更新锁(for update)摘要
查看>>
mysql更新频率_MySQL优化之如何了解SQL的执行频率
查看>>
mysql替换表的字段里面内容
查看>>
MySQL最大建议行数 2000w,靠谱吗?
查看>>
MySQL有哪些锁
查看>>
MySQL服务器安装(Linux)
查看>>
mysql服务器查询慢原因分析方法
查看>>
mysql服务无法启动的问题
查看>>
MySQL杂谈
查看>>
mysql权限
查看>>