任何一个数都可以用2的幂次方表示

思路:枚举,递归 ,

#include<iostream>
#include<cstdio>
using namespace std;
void try1(int n,int r){
    if(n==1) printf("2(%d)",r);
    else {
        try1(n/2,r+1);
        if(n%2==1){
            printf("+2(%d)",r);
        }
    }
}
int main(){
int n;
scanf("%d",&n);
try1(n,0);
return 0;
}
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int num=0;
while(n){
    if(n%2==1) printf("%d ",num);
    n=n/2;
    num++;
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/lianghudream/article/details/85325604