站外题目求助!
  • 板块题目总版
  • 楼主zhege122
  • 当前回复1
  • 已保存回复2
  • 发布时间2024/8/30 17:35
  • 上次更新2024/8/30 17:59:05
查看原帖
站外题目求助!
1123449
zhege122楼主2024/8/30 17:35

题目描述

给定一个正整数 N,请你判断这个数能否表示成三个 2 2 的正整数次幂的和,如果能输出"YES",否则输出"NO"。

输入格式

输入一个整数N,1≤N≤10^9

输出格式

输出一行字符串"YES"或"NO"。

样例输入1:

10

样例输出1:

YES

样例输入2:

4

样例输出1:

NO

我的代码

#include <bits/stdc++.h>

using namespace std;

int main() {
    long long N;
    scanf("%lld", &N);
    int cnt = 0; 
    for (int i = 0; i < 31; i++) {
        for (int j = 0; j < 31; j++) {
            for (int k = 0; k < 31; k++) {
                if (pow(2, i) + pow(2, j) + pow(2, k) == N) {
                    printf("YES\n");
                    return 0;
                }
            }
        }
    }
    printf("NO\n");
    
    return 0;
}

谁来帮我Debug一下:我的代码判断不了几个2的幂相加,就连2、4、8、16也输出“YES”,有什么问题?

2024/8/30 17:35
加载中...