Được biết một số nguyên N luôn có thể phân tích thành tổng các lũy thừa của 2 sao cho mỗi số
chỉ xuất hiện một lần. Cho một số nguyên N, bạn hãy in ra một cách phân tích đó.
Dữ liệu
• Một số nguyên dương N.
Kết quả
• In ra các số lũy thừa của 2 khác nhau sao cho tổng của chúng bằng N, in ra theo thứ tự tăng dần.
Giới hạn
• 1 ≤ N ≤ 10^9.
Ví dụ
Sample Input | Sample Output |
---|---|
6 | 2 4 |
CODE CỦA MK:
#include <bits/stdc++.h>
using namespace std;
int n;
int main()
{
cin>>n;
int d=0;
while(n>0)
{
if(n%2!=0)
cout<<(n%2)*pow(2,d)<<" ";
d++;
n=n/2;
}
return 0;
}
Code minh đã ổn chx vậy