九度 Online Judge 算法 刷题 题目1031:xxx定律
2015-08-13 10:33
267 查看
题目1031:xxx定律
C语言实现题目描述:
对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。
请计算需要经过几步才能将n变到1,具体可见样例。
输入:
测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1<=n<=10000)
输出:
对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。
样例输入:
3
1
0
样例输出:
5
0
来源:
2009年浙江大学计算机及软件工程研究生机试真题
code
[code]#include<stdio.h> int fun(int n) { int flag=0; while(n>1) { if(n%2==0) n = n/2; else { n =(3*n+1)/2; } flag++; } return flag; } int main() { int n; while (scanf("%d",&n)==1) { if (n<1 | n>10000) continue; else printf("%d\n",fun(n)); } return 0; } /************************************************************** Problem: 1031 User: langzimaizan Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/
相关文章推荐
- 遍历二叉树的各种操作(非递归遍历)
- Hdu oj 1017 A Mathematical Curiosity
- 一个Spring Boot, JWT,AugularJS接口安全验证的简单例子
- Unity3D系列1 : foreach对于性能到底有没有影响
- 拥抱Material Design!你的世界里不应该只有Bootstrap
- Matlab数值计算最简单的一个例子——指数衰减
- 一些面经3-链接汇总
- 偷懒省事有工具啊
- UITableView错误 ‘unable to dequeue a cell with identifier Cell'
- doget与dopost
- 如何使用source insight
- 字符串工具类
- swift -基本数据类型的定义与使用
- Compare Version Numbers
- Unity3D之协程(Coroutines & Yield )
- 无法自控
- 信息化教育为何需要智能桌面虚拟化?
- Android开发必知 九种对话框的实现方法
- solr 的客户端调用solrj 建索引+分页查询
- Java学习笔记------一对一聊天功能----