時間限制:2000ms
單點時限:1000ms
記憶體限制:256mb
描述乙個整型陣列裡除了兩個數字(互不相同)之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o(n),空間複雜度是o(1)。
輸入第一行:陣列的長度n(1只出現了1次的那兩個數,小的在前大的在後,空格隔開
樣例輸入
樣例輸出10
5 5 6 7 9 9 7 3 3 2
2 6
附上accep**
時間限制:2000ms// c語言實現
#include
main()
}for
(i=0
;i(a[i]
==a[i+1]
) i++
;else
printf
("%d "
,a[i]);
}return0;
}
單點時限: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()
時間限制:1000ms#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
記憶體限制: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的二進位制形式中每一位數都進行與運算,每次與 進行與運算的位只有為...