请问这种做法为什么是错的?
查看原帖
请问这种做法为什么是错的?
315205
Kniqht楼主2022/9/24 20:07

80pts求hack&解释,似乎没法下载数据 谢谢大佬

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
const int N=40;
ll x,ans[N],cnt;
int main(){
    scanf("%lld",&x);
    for(ll i=32;i>=0&&x;i--)
        if(x>=((ll)1<<i)) x-=(1<<i),ans[++cnt]=(1<<i);
    printf("%lld\n",cnt);
    for(int i=cnt;i;i--) printf("%lld ",ans[i]);
	return 0;
}  

2022/9/24 20:07
加载中...