⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2169.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include<stdio.h>
#include<string.h>

int p, now;
bool flag;
int tmp[22];
char a[22];

void dfs(int step, int cur)
{
    int i, temp;
    if (step > 16)
    {
        return;
    }
    if (flag == true)
    {
        return;
    }    
    tmp[step] = cur;
    now = now * -2 + cur;
    if (now == p)
    {
        for (i = 0; i <= step; i++)
        {
            printf("%d", tmp[i]);
        }
        printf("\n");
        flag = true;        
    }
    temp = now;
    dfs (step + 1, 0);
    now = temp;
    dfs (step + 1, 1);
}

int main()
{
    int n, i, j, k, sum, len, q, w = 1;
    char c;
    scanf("%d",&n);
    while(n--)
    {
        getchar();
        scanf("%c ",&c);
        if(c == 'b')
        {
            k = 1;
            sum = 0;
            scanf("%s", a);
            len = strlen(a);
            for(i = len - 1; i >= 0; i--)
            {
                sum=sum + (a[i] - '0') * k;
                k = -2 * k;
            }
            printf("From binary: %s is %d\n", a, sum);
        }
        else if(c=='d')
        {
            scanf("%d", &p);
            flag = false;
            now = 0;
            printf("From decimal: %d is ", p);
            if (p == 0)
            {
                printf("0\n");
                continue;
            }
            dfs(0, 1);
        }
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -