最少步数
2015-11-23 19:21
183 查看
最少步数
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一个数字n,我们可以进行3种操作,加1,减1,如果可以整除2,还可以除2,问最少多少步变换到1.输入
输入数据的第一行包含数字n(1<=n<=10000000)。多组输入。输出
计算结果。示例输入
3
示例输出
2
提示
来源
cz示例程序
#include<stdio.h> int d[10000001]; int set(int n) { if(n==1) { d =0; return d ; } if(n==2) { d =1; return d ; } else { if(n%2==0) d =set(n/2)+1; else d =set(n-1)>set(n+1)?set(n+1)+1:set(n-1)+1; return d ; } } int main() { int i,j,n,m,k,t; while(scanf("%d",&n)!=EOF) { k=set(n); printf("%d\n",k); } }
相关文章推荐
- hdu 1166 敌兵布阵--BIT
- leetcode Remove Element
- 统计问题
- C++编程实现变长数组
- Libgdx 之图片的翻转与旋转方式
- html5声明demo
- hdu2196经典树形dp
- 对象与对象变量
- 数字和
- jQuery序列化Ajax提交表单
- Find Peak Element
- JavaScript的setTimeout和setInterval的深入理解
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- 小崔学英语
- struts2 用标签 <s:property value='[]'/> 取值 json 含有转义字符的解决方法
- Big Clock
- Bootstrap历练实例:表单帮助文件
- 用 GitHub 来部署静态网页 ꒰・◡・๑꒱
- suibi
- 数三角形