您好,登錄后才能下訂單哦!
輸入一個整數(shù),輸出該數(shù)二進制表示中1的個數(shù)。如輸入32,輸出1.
代碼實現(xiàn):
方法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; }
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。