啊啊啊啊啊啊啊求解
  • 板块题目总版
  • 楼主lzagddsg
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/8/2 22:23
  • 上次更新2023/10/27 17:18:02
查看原帖
啊啊啊啊啊啊啊求解
635641
lzagddsg楼主2022/8/2 22:23

求解

求你们了,能不能告诉我,我是哪里有问题啊!!!
基于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]?!

2022/8/2 22:23
加载中...