关于pow
查看原帖
关于pow
432183
JoeBiden2020楼主2021/8/24 11:03

我从未见过如此坑爹之函数

#include<bits/stdc++.h>
using namespace std;
long long a,k,t;
int main(){
	cin>>a;
	k=log2(a);
	if(a%2){
		cout<<-1;
		return 0;
	}
	for(int i=k;i>=1;i--){
		if(a%2){
			cout<<-1;
			return 0;
		}
		if(a==0)break;
		t=pow(2,i);
		if(a-t<0)continue;
		a-=t;
		cout<<t<<" ";
	}
	return 0;
}

AC

#include<bits/stdc++.h>
using namespace std;
long long a,k;
int main(){
	cin>>a;
	k=log2(a);
	if(a%2){
		cout<<-1;
		return 0;
	}
	for(int i=k;i>=1;i--){
	    if(a%2){
	        cout<<-1;
	        break;
	    }
		if(a==0)break;
		if(a-pow(2,i)<0)continue;
		a-=pow(2,i);
		cout<<pow(2,i)<<" ";
	}
	return 0;
}

80分

2021/8/24 11:03
加载中...