求乙個正整數不大於它的偶數

2021-07-11 06:21:55 字數 747 閱讀 5130

問題描述:

編寫乙個程式,其功能是將正整數組中所有元素轉換為不大於它的最大偶數,並且顯示輸出。

演算法分析:

要將乙個正整數轉換為不大於它的最大偶數,只需將該正整數所對應的二進位制數的最低位清零即可。

例如:十進位制                        二進位制

2                                     10

3                                      11

4                                       100

5                                    101

6                                      110

7                                      111

8                                      1000

如要將數x的第n和位清零,就將x與數y「按位與」運算,其中y所對應的二進位制數除了第n和m位為0外,其他位全為1。

將乙個正整數所對應的二進位制數的最低位清零,就是這個正整數和乙個最低位為0其餘為1的16位(整數佔兩個位元組)

數進行「按位與」操作,即於1111111111111110(對應的十六進製制數為ffe)進行「按位與」運算。

源**:

#include

void main()

求乙個正整數的因子個數

如 整數 15,有1,15,3,5 共4個因子。要求演算法的複雜度為o sqrt n 首先想到的方法是 逐個列舉,從 1 到 n 2 1 當然也可以是 從 1 到 n 這樣演算法的複雜到至少是o n 的,而且,其中還要去重,比如 24 4 6 6 4,這樣還要分配空間來存放找到的因子,並且每次新增的...

關於求乙個正整數階乘的實現

第一種實現小數字階乘 class calculate public long calculatefactorial long n else if n 0 else 第二種實現方法 class calculate public string calculate long n else if n 0 n...

判斷乙個數是否為對稱且不大於五位數的素數

素數的條件 只能被1和本身整除 判斷素數的思想 對小於該數的正整數進行遍歷,看是否能被整除。判斷素數 int prime num int n else if n i 1 對乙個數判斷是否對稱,我們將該數轉為字串來處理,將數字轉為字串用到乙個函式 itoa 對字串處理對稱問題就容易得多了。完整 inc...