求助
查看原帖
求助
506039
mpsc_001楼主2021/7/29 22:52

谁能帮我解释一下题目要求的输出是怎么样的啊
我的样例输出:2(10)+2(8)+2(5)+2(2)+2+2(0)
代码:

#include<iostream>
#include<math.h>
using namespace std;
int ans[1000000];
int m2(int n){
    for(int i=1;;i++){
        if(pow(2,i)>n) return i-1;
    }
}
int main(){
    int n,sum=0;
    cin>>n;
    for(;n!=0;){
        int a=m2(n);
        ans[sum]=a;
        sum++;
        n-=pow(2,a);
    }
    for(int i=0;i<sum;i++){
    	cout<<2;
    	if(ans[i]!=1) cout<<'('<<ans[i]<<')';
    	if(i!=sum-1) cout<<'+';
	}
    return 0;
}
2021/7/29 22:52
加载中...