文章

99

粉丝

120

获赞

8

访问

97.4k

头像
2的幂次方
备考心情
发布于2024年8月5日 14:16
阅读数 985

#include <stdio.h>
#include <stdint.h>
#include <string.h>

void GetNumber(int n)
{
    int res[15] = {0}, index = 0, count = 0;
    // 先转换为2进制
    while (n != 0)
    {
        if(n % 2 == 1) count++;
        res[index++] = n % 2;
        n /= 2;
    }
    // 遍历每一位
    for (int i = index - 1; i >= 0; i--)
    {
        if (res[i] != 0)
        {
            count--;
            printf("2");
            if(i == 1) {
                
            }else if(i == 0) {
                printf("(0)");
            }else {
                printf("(");
                GetNumber(i);
                printf(")");
            }
            if(count > 0) {
                    printf("+");
                }
        }
    }
}

int main()
{
    // freopen("data.txt", "r", stdin);
    int n;
    while (scanf("%d", &n) != EOF)
    {
        GetNumber(n);
        printf("\n");
    }

    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发