1 条题解

  • 0
    @ 2024-12-18 14:07:33

    C :

    #include <stdio.h>
    
    int main() {
    	int n;
    	int a[10];
    	scanf("%d", &n);
    	int temp = n;
    	int i = 0;
    	int k = 0;
    	while (temp > 0) {
    		if (temp & 1) {
    			a[k] = i;
    			k++;
    		}
    		temp >>= 1;
    		i++;
    	}
    	for (int y = k - 1; y >= 0; y--) {
    		printf("%d ", a[y]);
    	}
    	return 0;
    }
    

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    
    string tostring(int n) {
    	string s;
    	while (n) {
    		int g = n & 1;
    		s += g + '0';
    		n >>= 1;
    	}
    //	reverse(s.begin(), s.end());
    	return s;
    }
    
    signed main() {
    	int n;
    	cin >> n;
    	string s = tostring(n);
    	int l = s.size();
    	for (int i = l - 1; i >= 0; i--) {
    		if (s[i] == '1')
    			cout << i << ' ';
    	}
    //	cout << s;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    687
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    提交数
    2
    已通过
    1
    上传者