17校招真題題集(1)1 5

2021-08-28 12:32:13 字數 3292 閱讀 8897

注:本系列題目全是按照通過率降序來排列的,基本保證題目難度遞增。

遊戲裡面有很多各式各樣的任務,其中有一種任務玩家只能做一次,這類任務一共有1024個,任務id範圍[1,1024]。請用32個unsigned int型別來記錄著1024個任務是否已經完成。初始狀態都是未完成。 輸入兩個引數,都是任務id,需要設定第乙個id的任務為已經完成;並檢查第二個id的任務是否已經完成。 輸出乙個引數,如果第二個id的任務已經完成輸出1,如果未完成輸出0。如果第一或第二個id不在[1,1024]範圍,則輸出-1。

輸入包括一行,兩個整數表示人物id.
輸出是否完成
示例1

1024 1024
1
分析:經過(艱難的)讀題,分析出只有兩個數相等,才輸出1,否則第二個id一定未完成,輸出0,不在範圍輸出-1即可。

p=(input().split())

f,s=int(p[0]),int(p[1])

if f not in range(1,1025) or s not in range(1,1025):

print(-1)

elif s==f:

print(1)

else:

print(0)

當然,這可能不是題目的本意,真的這麼寫可能會被打。

1024=32*32,因此可用32個整數表示1024位(因為每個整數32位)

因為任務id範圍是1~1024,所以減1轉化為0~1023

然後任務id除以32,商為存到哪個整數,餘數為該整數對應位(置1即可)

注:除以32相當於直接右移5位,對32取餘相當於"與31"(這個技巧只對2的次方數有效).

#include using namespace std;

unsigned int arr[32];

int main()

int main()

}system.out.println(count);}}

/** 二進位制 */

private static int g(int n)

return sum;

}/** 十進位制 */

private static int f(int n)

return sum;

}}

c++:

#include#include#include#include#include#define n 30;

using namespace std;

int f(int i)

return sum;

}int g(int i)

return sum;

}int main()

}cout《有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒會橫向或者縱向移動到相鄰的草地上吃草(小易不會走出邊界)。大反派超超想去捕捉可愛的小易,他手裡有n個陷阱。第i個陷阱被安置在橫座標為xi ,縱座標為yi 的位置上,小易一旦走入乙個陷阱,將會被超超捕捉。你為了去解救小易,需要知道小易最少多少秒可能會走入乙個陷阱,從而提前解救小易。

第一行為乙個整數n(n ≤ 1000),表示超超一共擁有n個陷阱。

第二行有n個整數xi,表示第i個陷阱的橫座標

第三行有n個整數yi,表示第i個陷阱的縱座標

保證座標都在草地範圍內。

輸出乙個整數,表示小易最少可能多少秒就落入超超的陷阱
示例1

3

4 6 8

1 2 1

3
分析:從[1,1]走到[x,y]需要(x-1)+(y-1)步這樣對每個陷阱計算一下從[1,1]到陷阱所用的步數,求最小值即可。

n=int(input())

//儲存橫縱座標

x=[int(x) for x in input().split()]

y=[int(x) for x in input().split()]

s=x[0]-y[0]-2//儲存值

for i in range(n):

s=min(x[i]+y[i]-2,s)

print(s)

18位身份證的編碼規則是:

前1、2位數字表示:所在省(直轄市、自治區)的**

第3、4位數字表示:所在地級市(自治州)的**

第5、6位數字表示:所在區(縣、自治縣、縣級市)的**;

第7—14位數字表示:出生年、月、日;

第15、16位數字表示:所在地的派出所的**;

第17位數字表示性別:奇數表示男性,偶數表示女性;

第18位數字是校檢碼,用來檢驗身份證的正確性。

使用者在輸入身份證的過程中經常會輸入錯誤,為了方便使用者正確輸入需要在輸入過程中對使用者的輸入按照 6+8+4 的格式進行分組,實現乙個方法接收輸入過程中的身份證號,返回分組後的字元

輸入資料有多行,每一行是乙個輸入過程中的身份證號
分組後的字串
示例1

5021

502104 198803

5021041988033084

502104198803308324

5021

502104 198803

502104 19880330 84

502104 19880330 8324

分析:就是判斷一下字串長度的情況

s=input().replace(' ','')

if len(s)<=6:

print(s)

elif len(s)<=14:

print(s[0:6]+' '+s[6:])

else:

print(s[0:6]+' '+s[6:14]+' '+s[14:])

有些同學沒學python,找了個別人的c++,自己看吧

#include #include using namespace std;

//按順序輸出字串,跳過空格

//重新確定空格的位置,輸出時對非空格字元計數,6及18時輸出乙個空格

//注意一種特殊清空,字串就6個,那麼計數為6時不加空格

int main()

}cout<}

}

17校招真題題集(3)11 15

注 本系列題目全是按照通過率降序來排列的,基本保證題目難度遞增。小易去附近的商店買蘋果,奸詐的商販使用了 交易,只提供6個每袋和8個每袋的包裝 包裝不可拆分 可是小易現在只想購買恰好n個蘋果,小易想購買盡量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。輸入乙個整數n,表示小易想購買n ...

2017校招真題 幸運數

時間限制 1秒 空間限制 32768k 題目描述 小明同學學習了不同的進製之後,拿起了一些數字做起了遊戲。小明同學知道,在日常生活中我們最常用的是十進位制數,而在計算機中,二進位制數也很常用。現在對於乙個數字x,小明同學定義出了兩個函式f x 和g x f x 表示把x這個數用十進位制寫出後各個數字...

網易校招真題 數字遊戲

題目描述 小易邀請你玩乙個數字遊戲,小易給你一系列的整數。你們倆使用這些整數玩遊戲。每次小易會任意說乙個數字出來,然後你需要從這一系列數字中選取一部分出來讓它們的和等於小易所說的數字。例如 如果是你有的一系列數,小易說的數字是11.你可以得到方案2 2 7 11.如果頑皮的小易想坑你,他說的數字是6...