演算法很美之位運算

2021-09-10 14:29:27 字數 2648 閱讀 7261

時間限制:2000ms

單點時限:1000ms

記憶體限制:256mb

描述乙個整型陣列裡除了兩個數字(互不相同)之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o(n),空間複雜度是o(1)。

輸入第一行:陣列的長度n(1只出現了1次的那兩個數,小的在前大的在後,空格隔開

樣例輸入

10

5 5 6 7 9 9 7 3 3 2

樣例輸出

2 6
附上accep**

// c語言實現

#include

main()

}for

(i=0

;i(a[i]

==a[i+1]

) i++

;else

printf

("%d "

,a[i]);

}return0;

}

時間限制:2000ms

單點時限:1000ms

記憶體限制:256mb

描述給定兩個整數a和b,需要改變幾個二進位制位才能將a轉為b。

輸入1行:a和b,空格隔開

輸出需要改變的位數

樣例輸入

10 8
樣例輸出

1
附上accep**

// 方法一

#include

// 將a,b兩個數先異或 賦值給a 化a為二進位制 二進位制中一的個數即為答案

int ej

(int a)

return s;

}main()

// 方法二

#include

// 將a,b兩個數均化為二進位制,比較不同的位數即為答案

int a1[10]

,b1[10]

;void

ej(int a,int b)

j=i;

i=0;while

(b!=0)

if(i>j)

for(k=

0;k)else

for(k=

0;k)printf

("%d\n"

,s);

}main()

return0;

}

時間限制:1000ms

單點時限:1000ms

記憶體限制:256mb

描述地產大亨q先生臨終的遺願是:拿出100萬元給x社群的居民**,以稍慰藉心中愧疚。

麻煩的是,他有個很奇怪的要求:

100萬元必須被正好分成若干份(不能剩餘)。每份必須是7的若干次方元。比如:1元, 7元,49元,343元,…

相同金額的份數不能超過5份。

在滿足上述要求的情況下,分成的份數越多越好!

請你幫忙計算一下,最多可以分為多少份?

輸入固定輸入:1000000

輸出最多可以分為多少份

樣例輸入

1000000
樣例輸出

附上accep**

#include

// 直接暴力求解

/*7的次方能有多少啊?不超過100萬的一共就那麼幾個,每個的取值從0到5,

組合起來也沒有多少啊,看看哪個組合剛好湊成100萬不就行了。

如果嫌找出最多的那個組合費事,把所有湊成100萬的輸出不就行了?我就不信,

能湊成100萬的情況會有那麼多嗎?應該屈指可數吧!

*/main()

; int i0,i1,i2,i3,i4,i5,i6,i7,i8;

for(i0=

0;i0<

6;i0++

)for

(i1=

0;i1<

6;i1++

)for

(i2=

0;i2<

6;i2++

)for

(i3=

0;i3<

6;i3++

)for

(i4=

0;i4<

6;i4++

)for

(i5=

0;i5<

6;i5++

)for

(i6=

0;i6<

6;i6++

)for

(i7=

0;i7<

6;i7++

)for

(i8=

0;i8<

6;i8++)if

(i0*a[0]

+i1*a[1]

+i2*a[2]

+i3*a[3]

+i4*a[4]

+i5*a[5]

+i6*a[6]

+i7*a[7]

+i8*a[8]

==1000000

)printf

("%d\n"

,i0+i1+i2+i3+i4+i5+i6+i7+i8)

;return0;

}

演算法很美 位運算 找出落單的那個數

上級目錄 演算法很美 乙個陣列裡除了某乙個數字之外,其他的數字都出現了兩次。請寫程式找出這個只出現一次的數字。異或的運算是a a 也就是說偶數個相同的元素異或,結果肯定是 a a a a,也就是說奇數個相同元素異或,結果是a本身。那麼根據上面的思路,我們可以設陣列 現兩次的元素為a組元素,一次的為b...

演算法研究之位運算

1 使用位運算乘法。把乙個乘數變為2進製後,使用位運算完成乘數的乘法。輸入 正整數k 和 正整數m 輸出 k m int64 km int64 k,int64 m return x 2 使用位運算的乘方運算 指數變為2進製後,使用位運算完成乘方運算。偽 c 實現 cpp view plain cop...

演算法很美 位運算 二進位制中 的個數

上級目錄 演算法很美 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示 的個數。例如 的二進位制表示為1001,有2為是 整數n有 位,假設當n與上 整數a 1第i 0 i 0 思路如下1 整數字有 位,因此只需要讓 左移 次,與n的二進位制形式中每一位數都進行與運算,每次與 進行與運算的位只有為...