P5727 【深基5.例3】冰雹猜想
我的代码:
#include<iostream>
using namespace std;
int main(void)
{
int n,count=0;
int a[50];
cin >> n;
int i = 0;
a[i] = n;
while (a[i] != 1)
{
if (a[i]%2 != 0)
a[i + 1] = a[i] * 3 + 1;
else
a[i + 1] = a[i] / 2;
++i;
++count;
}
for (int j = count; j >= 0; j--)
cout << a[j]<<" ";
return 0;
}
测试错误点:runtime error
求助了大佬,才发现原来是数组开小了。
记住个数是可以 >100 的,因为有的数*了之后变大,从而数变多
AC代码:
#include<iostream>
using namespace std;
int main(void)
{
int n,count=0;
int a[1002];
cin >> n;
int i = 0;
a[i] = n;
while (a[i] != 1)
{
if (a[i]%2 != 0)
a[i + 1] = a[i] * 3 + 1;
else
a[i + 1] = a[i] / 2;
++i;
++count;
}
for (int j = count; j >= 0; j--)
cout << a[j]<<" ";
return 0;
}