第一个题 因为之前不知道还要写题解 只做了题 所以现在回来补题解
八十个......
争取尽快补完.....
题意:如果一个数n不等于1,那么如果它是奇数就n=3n+1,是偶数就n=n/2,一直到n等于1,一共需要sum步才能实现,给出两个数,要找出两个数之间sum最大的数。
题解:就穷举吧.......把两个数之间所有的数的sum都算出来比较,求最大的输出
代码
#include<iostream>
using namespace std;
int m;
int solution(int tar)
{
int m=1;
while(tar!=1)
{
if(tar%2==1)
tar=3*tar+1;
else
tar=tar/2;
m++;
}
return m;
}
int main()
{
int first,last;
while(cin>>first>>last)
{
int big,small;
if(first<last)
{
small=first;
big=last;
}
else
{
small=last;
big=first;
}
int n;
int max=0;
for(n=small;n<=big;n++)
{
int j=solution(n);
if(max<j)
max=j;
}
cout<<first<<" "<<last<<" "<<max<<endl;
}
return 0;
}