蒟蒻代码求调
  • 板块学术版
  • 楼主封禁用户
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/9/17 23:40
  • 上次更新2023/10/27 11:04:25
查看原帖
蒟蒻代码求调
763815
封禁用户楼主2022/9/17 23:40

rt,我用dfs写了今天abc的c题,但是WA13个点,求大佬看看我代码有什么问题

#include <bits/stdc++.h>
using namespace std;
#define maxn 1000
#define int unsigned long long
string s;
int len;
string ans;
string to2(int n)
{
    if (n == 0)
        return "0";
    string s = "";
    while (n > 0)
    {
        s += to_string(n % 2);
        n /= 2;
    }
    reverse(s.begin(), s.end());
    return s;
}
int back2(string s)
{
    int len = s.length();
    int n = 0;
    for (int i = 0; i < len; ++i)
        if (s[i] == '1')
            n += pow(2, len - 1 - i);
    return n;
}
void dfs(int x, string str)
{
    if (x >= str.length())
    {
        cout << back2(str) << endl;
        return;
    }
    if (str[x] == '1')
    {
        str[x] = '0';
        dfs(x + 1, str);
        str[x] = '1';
        dfs(x + 1, str);
        return;
    }
    dfs(x + 1, str);
}
signed main()
{
    int n;
    cin >> n;
    if (n == 0)
    {
        cout << 0;
        return 0;
    }
    s = to2(n);
    len = s.length();
    dfs(0, s);
    // cout<<s;
    return 0;
}
2022/9/17 23:40
加载中...