题意:给个循环,然后给一个数,直到循环结束为止,共能输出多少个数。给定一个数据范围,然后问这个范围内循环次数最多的次数是多少次
分析:没难度,水题,用个结构体计算次数,用数组存储所有次数,然后再排个序,输出最大的那一个就行。注意 这一句“All integers will be less than 10,000 and greater than 0.”数组的大小要开的够大,不然会有蛋痛的RE(一般都是数组越界)
贴一下代码:(252k,16ms)
#include<iostream>
#include<algorithm>
using namespace std;
int
judge(
int n)
{
int
temp
=
0;
while(
true)
{
temp
++;
if(n
==
1)
break;
if(n
%
2
!=
0)n
=
3
*n
+
1;
else n
= n
/
2;
}
return
temp;
}
int main()
{
int
a
,b;
int
i
,
j;
int
max_num
,
min_num;
int
max;
int
times
[
10005
];
while(
cin
>>
a
>>b)
{
max_num
=
a
>b
?
a:b;
min_num
=
a
<b
?
a:b;
max
=
max_num
-
min_num
+
1;
for(
i
=
min_num
,
j
=
0;
i
<=
max_num
,
j
<
max;
i
++
,
j
++)
{
times
[
j
]
=
judge(
i);
}
sort(
times
,
times
+
max);
cout
<<
a
<<
" "
<<b
<<
" "
<<
times
[
max
-
1
]
<<
endl;
}
}
#include<algorithm>
using namespace std;
int
{
}
int main()
{
}