UVa 100 3n+1问题 The 3n + 1 problem

来源:互联网 发布:小额贷款业务软件 编辑:程序博客网 时间:2024/04/30 06:11

题目:给定a和b两个整数,找到a到b之间(包括a,b)所有数中最大的步数。步数:如果该数为奇数,那么该数*3+1,如果该数为偶数,那么该数/2,一直循环,直到该数=1。

心得:

1、和以前课上做过的一题一样,要注意所给两数的大小关系

2、在输出时要按照一开始的顺序输出i和j

代码:

#include<iostream>using namespace std;int main(){int a,b,sum,s,i,t;while(cin>>a>>b){int c=a,d=b;if(a>b)swap(a,b);for(i=a,s=0;i<=b;i++){sum=1,t=i;while(t!=1){if(t%2==0)t/=2;elset=t*3+1;sum++;}if(sum>s)s=sum;}cout<<c<<' '<<d<<' '<<s<<endl;}}


0 0
原创粉丝点击