博客
关于我
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/

你可能感兴趣的文章
NAT技术
查看>>
NAT模式下虚拟机centOs和主机ping不通解决方法
查看>>
NAT的两种模式SNAT和DNAT,到底有啥区别?
查看>>
Navicat for MySQL 命令列 执行SQL语句 历史日志
查看>>
Navicat for MySQL 查看BLOB字段内容
查看>>
Navicat Premium 12 卸载和注册表的删除
查看>>
navicat 系列软件一点击菜单栏就闪退
查看>>
navicat 连接远程mysql
查看>>
Navicat下载和破解以及使用
查看>>
Navicat可视化界面导入SQL文件生成数据库表
查看>>
Neat Stuff to Do in List Controls Using Custom Draw
查看>>
NeHe OpenGL教程 第四十四课:3D光晕
查看>>
neo4j图形数据库Java应用
查看>>
Neo4j安装部署及使用
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(2):环境搭建
查看>>
Neo私链
查看>>
Nerves 项目教程
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>