您好,登錄后才能下訂單哦!
輸入一個整數,輸出該數二進制表示中1的個數。如輸入32,輸出1.
代碼實現:
方法1:與運算
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOneNumber(unsigned int num) { int numberofOne = 0; while (num) { num = num & (num - 1); numberofOne++; } return numberofOne; } void Test() { int num = 32; cout<<FindOneNumber(num)<<endl; } int main() { Test(); system("pause"); return 0; }
方法2:模除法
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOneNumber(unsigned int num) { int numberofOne = 0; while (num) { if(num % 2 == 1) numberofOne++; num /= 2; } return numberofOne; } void Test() { int num = 32; cout << FindOneNumber(num) << endl; } int main() { Test(); system("pause"); return 0; }
方法3:移位
#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOneNumber(unsigned int num) { int numberofOne = 0; while (num) { if (num & 1) numberofOne++; num = num >> 1; } return numberofOne; } void Test() { int num = 32; cout << FindOneNumber(num) << endl; } int main() { Test(); system("pause"); return 0; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。