比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数。
来源:互联网 发布:聚合数据接口怎么用呀 编辑:程序博客网 时间:2024/06/15 22:17
比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数。
该运算规则是:
如果n为偶数,将其除以2;
如果n为奇数,可以加1或减1;
然后一直处理下去,直到得到运算结果为1。
现在假如你给定Bill一个正整数m,你认为它会怎么计算出计算出得到1的最少操作次数。
输入
第一行:n 表示有多少组测试数据。
接下来有n行:每一行有一个正整数m(0<m<100000),表示你给定Bill的正整数。
输出
对于每一行测试数据,输出一行,每行数据为最少操作次数。
样例输入
3
7
15
5
样例输出
4
5
3
源代码如下:#include<stdio.h>
int
func2(
int
n) //通过递归函数得到操作数
{
if
(n==1)
{
return
0;
}
if
(n%2==0)
{
return
1+func2(n/2);
}
if
(n==3)
{
return
2;
}
if
((n+1)%4==0)
{
return
1+func2(n+1);
}
else
{
return
1+func2(n-1);
}
}
int
main()
{
int
i,j,n,m;
scanf
(
"%d"
,&n);
for
(i=0;i<n;i++)
{
scanf
(
"%d"
,&m);
j=func2(m);
printf
(
"%d\n"
,j);
}
return
0;
}
采用递归的思想,同时通过前16项寻找规律,
0 0
- 比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数。
- 角谷步数 你听说过角谷猜想吗? 任意的正整数,比如 5, 我们从它开始,如下规则计算: 如果是偶数,则除以2,如果是奇数,则乘以3再加1. 如此循环,最终必会得到“1” !
- 你听说过角谷猜想吗?任意的正整数,比如 5, 我们从它开始,如下规则计算如果是偶数,则除以2,如果是奇数,则乘以3再加1.如此循环,最终必会得到“1” !
- 数字黑洞:任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到 * 一个最大的数:65432,一个最小的数23456。
- 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。
- 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。
- 实现一个函数,对一个正整数n,算得到1需要的最少操作次数?
- 实现一个函数,对一个正整数n,算得到1需要的最少操作次数?
- 实现一个函数,对一个正整数n,算得到1需要的最少操作次数:
- 实现一个函数,对一个正整数n,算得到1需要的最少操作次数?
- 1、对一个正整数算到1需要的最少操作次数
- 对一个正整数n,算得到1需要的最少操作次数。
- 对一个正整数n,算得到1需要的最少操作次数
- 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子
- 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子
- 知道一个IP地址,如何计算出它的子网掩码啊?
- 学Java你得按照它的规则来--java关键字标识符等
- 输入一个正整数n,计算出1~n之间出现1的次数
- list实现的排行榜 针对游戏逻辑
- 关于网站备案及备案号的取得(个人网站建站)
- Linux内核配置、编译和内核安装
- 使用Autolayout xib实现动态高度的TableViewCell
- QEMU KVM系列三: 使用EPT 模拟内存。
- 比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数。
- 使用Autolayout实现UITableView的Cell动态布局和高度动态改变
- 简单HTML
- 压缩感知(Compressed sensing)from wiki
- 单向加密算法-BASE64、MD5、SHA、HMAC
- spring MVC controller 的单元测试 第一部分:配置
- 约瑟夫环
- Ng在coursera上的机器学习公开课——zai总结(2)_Octave Tutorial
- C语言接口与实现: Atom