POJ1207解题报告
2015-09-07 15:43
176 查看
题意
这个题的意思是 :有一个数,按那个规则,最后能够转换到1,算出这个序列的长度 然后输入两个数,在这两个数构成的闭区间中,每个数都有其序列长度,求这个序列中最长的一个。
思路
先写出一个函数,求一个数的序列长度,然后对区间做循环,求长度最大值
难点
似乎也没什么难点,只是有很多细节需要考虑一下,详见代码 我改了三次才AC,就是因为输出那块出了些问题。。。
代码
#include <iostream> using namespace std; int number(int num){ //计算一个数序列长度,返回值就是序列长度 int count=1; while(1){ if(num==1){return count;} if(num%2!=0){num=3*num+1;count++; } if(num%2==0) {num=num/2;count++;} } } int main() { int low,high,i; while(cin>>low>>high){ int m =low,n=high; //最后输出格式需要 if(low>high){ //因为他没说输入两个数的大小关系,所以得判断一下把小的数放在前面 int temp = low; low = high; high = temp; } int max = number(low); //刚才出错就出在这儿了,low写成了i for(i=low;i<=high;i++){ if(number(i)>max) max = number(i); } cout<<m<<" "<<n<<" "<<max<<endl; //这一句我也曾出过错 } return 0; }
相关文章推荐
- C++类成员声明时候不能初始化
- LoadLibraryA加载dll失败
- BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离
- 让驰骋工作流程引擎 ccbpm使用自定义表单来实现自己的业务逻辑.
- NSString / NSData / char* 类型之间的转换
- 验证码
- 生产者消费者之 wait / notify
- linux设备驱动归纳总结(八):2.match.probe.remove
- xpath: Python网页爬虫定位辅助利器
- html解析器 HtmlAgilityPack
- opencv 如何读取摄像头
- CC2541蓝牙学习——定时器1的捕获/比较功能(PWM)
- IOS_UI_ImageView Image 手势 UISwitch UISegmentControl
- tomcat7部署文件服务器,解决跨域问题
- js读取配置文件(理解版)
- 电压驱动和电流驱动
- moosefs2.0-安装(3)
- tair集群配置
- KVO 和 KVC
- C++中cin、cin.get()、cin.getline()、getline()