pat继续(3n+1)猜想 (25分)

大佬们为什么这个代码出现了很多格式错误

#include "iostream"
#include "algorithm"

using namespace std;
int num[500];   //输入
int hashtable[5000] = {0};
int ans[500];   //存储输入的num数组

int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> num[i];  //输入
        ans[i] = num[i];    //临时保存输出时用
        if (hashtable[num[i]] == 0) {   //没有被标记,其后面覆盖数进行标记
            while (num[i] != 1) {   //覆盖跳出条件
                if (num[i] % 2 == 1) num[i] = (num[i] * 3 + 1) / 2; 
                else num[i] /= 2;
                if (hashtable[num[i]] == 1) {   //一旦这个覆盖数已经被覆盖过那么后面的数都是被覆盖过的直接跳出
                    break;
                }
                hashtable[num[i]] = 1;
            }
        }

    }
    sort(ans, ans + n); //临时数组排序从大的输出
    for (int j = n - 1; j >= 0; j--) {
        if (hashtable[ans[j]] == 0) {
            cout << ans[j];
            if (j > 0) cout << " "; //最后一个没有空格
        }
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^