Q5.3

来源:互联网 发布:淘宝怎么看直播 编辑:程序博客网 时间:2024/06/10 08:44
#include <iostream>using namespace std;string int2binary(int a){string res = "";int t;while(a > 0){t = a % 2;a >>= 1;if(t == 1)res = "1" + res;elseres = "0" + res;}return res;}int count2(int a){int cont = 0;while(a){a = a &(a - 1);cont++;}return cont;}int count1(string s){int n = 0;for(int i = 0; i < s.size(); ++i){if(s[i] == '1')++n;}return n;}int maxmin(int a, int n){while(a++){if(count1(int2binary(a)) == n)return a;}}int minmax(int a, int n){while(a--){if(count1(int2binary(a)) == n)return a;}}int main(void){int a = 5;string istr = int2binary(a);cout << "a = " << a << endl << "a的二进制表示为:" << istr << endl;//int n = count1(istr);int n = count2(a);cout << "a中1的个数为:" << n << endl;cout << "与a二进制中1个数相同,比a大的整数中最小的是:" << maxmin(a, n) << endl;cout << "与a二进制中1个数相同,比a小的整数中最大的是:" << minmax(a, n) << endl;return 0;}

0 0
原创粉丝点击