MK14万岁,题解在这,带有注释和缩进
2024-04-08 21:46:55
发布于:广东
84阅读
0回复
0点赞
这道题没啥难度,题解在这,慢慢看吧......
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
if(n%2==1 ){
cout<<-1;
return 0;
}
stack<int> q;
int i=-1;
int no1 = 0;
while(n>0)//转换为2进制
{
int u = n%2;
q.push(u);
n/=2;
i++;
}
while(!q.empty())//开始输出
{
int u = q.top();
q.pop();
if(u!=0){//不为0的就输出
//求幂,不能使用pow,使用pow的时候如果数字太大会变成科学计数法输出,就会报错
int p = i;
int out =1;
while(p>0)
{
out*=2;
p--;
}
cout<<out<<" ";
}
i--;
}
return 0;
}
全部评论 2
可以直接复制。
2024-04-08 来自 广东
1…
2024-04-09 来自 北京
1zan
2024-04-13 来自 广东
06
2024-04-13 来自 广东
0
这道题挺简单的
2024-04-08 来自 广东
1
有帮助,赞一个