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

思路:迭代,递归 ,

#include
#include
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
#include
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;
}

 

你可能感兴趣的:(杂项,递归)