求你们了,能不能告诉我,我是哪里有问题啊!!!
基于P5727,我写出了一下代码:
上代码!!!
#include <bits/stdc++.h>
using namespace std;
int n, a[10000], i = 1;
int main()
{
cin >> n;
while (n != 1)
{
a[i] == n;
i++;
if (n % 2 == 0)
n /= 2;
else
n = 3 * n + 1;
}
a[i] = 1;
for (int j = i; j >= 1; j--)
cout << a[j] << " ";
return 0;
}
然后我兴冲冲地在Dev-Cpp上面编译,结果在消除大部分bug(因为这就是一个代码很多的bug[doge])后,我发现运行后我输入20他输出的是1 0 0 0 0 0 0 0。我吐血!我……我……我竟无言以对!
后来我看了看咱们落谷的特色项目“题解”,发现榜一的代码是这样婶儿滴:
上代码:
#include<bits/stdc++.h>//万能头
using namespace std;
int main()
{
int n,a[1002]={0},i=1;//i是记个数用的
cin>>n;
while(n!=1)//重点
{
a[i]=n;
i++;
if(n%2==0) n/=2;
else n=3*n+1;
}
a[i]=1;//开始准备输出
for(int j=i;j>=1;j--)
{
cout<<a[j]<<' ';
}
return 0;//比赛一定要加
}
对了,特此感谢落谷oier@小鲍bob提供的源代码(就在上面)
但是我真的不明白啊,我觉得我的和他的……这似乎 毫无破绽 ,对吧? 毫无破绽! ,但是我还是不得不承认:我的那个连最基本的样例都过不了!!!
所以,各位大佬们,行行好啦,帮忙解释一下,为什么他的能过我的就是个代码很多的bug[doge]?!