華為研發工程師程式設計題 牛客網刷題自總

2021-09-26 13:52:20 字數 3235 閱讀 7563

一共三道題,難度不大,這裡唯一要記的是,牛客網的編譯器有問題!如果不是下面這樣的格式,就一直報錯,明明在自己的ide上面執行正確,但一提交就報錯。

while true:

try:

內容except:

break

其他大神總結的經驗:

如果沒有異常處理,程式就停不下來,或者只有遇到錯誤才停下來。我上面說的就是第二種情況。牛客刷題兩種套路,如果多組資料,不管三七二十一,先寫while true,再寫try except。如果一組資料,直接寫**就可以了。

有這樣一道智力題:「某商店規定:三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?」答案是5瓶,方法如下:先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝完以後用3個空瓶子換一瓶滿的還給老闆。如果小張手上有n個空汽水瓶,最多可以換多少瓶汽水喝?

輸入描述:

輸入檔案最多包含10組測試資料,每個資料佔一行,僅包含乙個正整數n(1<=n<=100),表示小張手上的空汽水瓶數。n=0表示輸入結束,你的程式不應當處理這一行。
輸出描述:

對於每組測試資料,輸出一行,表示最多可以喝的汽水瓶數。如果一瓶也喝不到,輸出0。
示例1

輸入

3

1081

0

輸出

1

540

def solu(x):

if x <= 1:

return 0

if x > 100:

return

if x == 2 or x == 3:

return 1

count = 0

while (x >= 3):

temp_zheng = x/3

temp_yu = x%3

x = temp_zheng + temp_yu

count = count + temp_zheng

if x <= 1:

return count

if x == 2 or x == 3:

return count+1

while true:

try:

inp =

res =

for _ in range(11):

if inp[-1] != 0:

print solu(inp[-1])

except:

break

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數(n≤1000),對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成「去重」與「排序」的工作(同乙個測試用例裡可能會有多組資料,希望大家能正確處理)。

input param

n               輸入隨機數的個數

inputarray      n個隨機整數組成的陣列

return value

輸入描述:

輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數

輸出描述:

返回多行,處理後的結果

輸入例子1:

11

1020

4032

6740

2089

300400

15

輸出例子1:

10

1520

3240

6789

300400

while true:

try:

n = input()

res =

for _ in range(n):

x = input()

if x not in res:

res.sort()

for x in res:

print x

except:

break

寫出乙個程式,接受乙個十六進製制的數,輸出該數值的十進位制表示。(多組同時輸入 )

輸入描述:

輸入乙個十六進製制的數值字串。

輸出描述:

輸出該數值的十進位制字串。

輸入例子1:

0xa
輸出例子1:

10
while true:

try:

inp = raw_input()

fuzhu = ['a', 'b', 'c', 'd', 'e', 'f']

res = 0

i = 1

for x in range(len(inp) - 1, -1, -1):

if inp[x] != 'x':

if inp[x] not in fuzhu:

res = res + int(inp[x]) * i

else:

if inp[x] == 'a':

res = res + 10 * i

if inp[x] == 'b':

res = res + 11 * i

if inp[x] == 'c':

res = res + 12 * i

if inp[x] == 'd':

res = res + 13 * i

if inp[x] == 'e':

res = res + 14 * i

if inp[x] == 'f':

res = res + 15 * i

else:

break

i = i * 16

print res

except:

break

牛客網華為研發工程師程式設計題2 3

程式設計題 明明的隨機數 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不...

牛客網 華為2016研發工程師程式設計題(C )

1 程式設計題 刪數 時間限制 1秒 空間限制 32768k 有乙個陣列a n 順序存放0 n 1,要求每隔兩個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置。以8個數 n 7 為例 0,1,2,3,4,5,6,7 0 1 2 刪除 3 4 5 刪除 6 7 0 刪除 ...

華為2016研發工程師程式設計題

程式設計題 刪數 時間限制 1秒 空間限制 32768k 有乙個陣列a n 順序存放0 n 1,要求每隔兩個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置。以8個數 n 7 為例 0,1,2,3,4,5,6,7 0 1 2 刪除 3 4 5 刪除 6 7 0 刪除 如此...