找规律
来源:互联网 发布:水果游戏机编程 编辑:程序博客网 时间:2024/04/19 10:09
题目描述:
实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。
例如 5->4->2->1,5需要三步;7->8->4->2->1 最快需要四步,或者7->6->3->2->1这种走法。
当n是偶数时,将n除以2,如果n是奇数时,需要考虑最后两位是01或者11,当是01时,需要减去1,当是11时需要加上1,构成2的幂次方.
3是特殊情况,需要特殊处理
int minstep(int n){ if((n%2) == 0) return 1+minstep(n/2); if(n == 1) return 0; if(n == 3) return 2; if((n & 3) == 3){ // 判断最后两位是11 return 1+minstep(n+1); } if((n & 1) == 1){ // 判断最后两位是01 return 1+minstep(n-1); }}
或者这样写:
int minstep(int n){ if((n%2) == 0) return 1+minstep(n/2); if(n == 1) return 0; if(n == 3) return 2; if((n & 2)){ return 1+minstep(n+1);// 当最后两位是11时,和10的与存在 } else{ return 1+minstep(n-1);// 当最后两位是01时候 }}
0 0
- 找规律
- 找规律!
- 找规律
- 找规律,
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 递归(找规律、找出口)
- 数字找规律
- POJ1450 Gridland [找规律]
- 1694. Spiral (找规律)
- 【找规律】【ZJOI2009】函数
- Hibernate 配置文件的详细使用与说明
- POJ 1815 Friendship(最小割)
- 理论篇-地图学与GIS制图的基础理论(二)
- win7下开机启动自动运行脚本
- 网站开发人员应该知道的62件事
- 找规律
- 房顶上
- fv吧
- 双方如果vsdf
- Codeforces Round #264 (Div. 2)-B. Caisa and Pylons
- Android-取得输入法或者系统标题栏、魅族下部smartbar等的高度
- eclipse常用快捷键
- HOJ 2713 Matrix1 [网络流] 最大点权独立集问题
- 黑马程序员——Java基础——判断、循环、函数