bilibili校招題目 扭蛋機

2021-10-06 23:09:40 字數 1187 閱讀 5222

22娘和33娘接到了小電視君的扭蛋任務:

一共有兩台扭蛋機,編號分別為扭蛋機2號和扭蛋機3號,22娘使用扭蛋機2號,33娘使用扭蛋機3號。

扭蛋機都不需要投幣,但有一項特殊能力:

扭蛋機2號:如果塞x(x範圍為》=0正整數)個扭蛋進去,然後就可以扭到2x+1個

扭蛋機3號:如果塞x(x範圍為》=0正整數)個扭蛋進去,然後就可以扭到2x+2個

22娘和33娘手中沒有扭蛋,需要你幫她們設計乙個方案,兩人「輪流扭」(誰先開始不限,扭到的蛋可以交給對方使用),用「最少」的次數,使她們能夠最後恰好扭到n個交給小電視君。

輸入描述:

輸入乙個正整數,表示小電視君需要的n個扭蛋。

輸出描述:

輸出乙個字串,每個字元表示扭蛋機,字元只能包含"2"和"3"。

示例1

輸入

輸出

備註:

1<=n<=1e9

2號扭蛋機規則為2x+1,為奇數數列,3號的2x+2為偶數數列。

首先我們順序分析:第一次的扭出的扭蛋是1或2,隨後要麼選擇奇數數列,要麼選擇偶數數列來湊齊n,但此處我們不可能判斷出2人是按何順序選擇奇偶來配湊n,但由於扭蛋個數必為整數,因此根據n本身的奇偶性我們一定可以得出得到n這個數前乙個投入的扭蛋數——(n-1)/2 或 (n-2)/2,依據這個原理我們可以遞迴到倒數第三個、第四個…一直到第乙個,陣列中記錄每次的扭蛋機號倒敘輸出即可(此處我覺得我對陣列的初始化做的不是很好,我不知道如何確定個數,還請大佬指點一下更好的方法)

#include

#include

using

namespace std;

intmain()

//n是奇數,標記為2號機

else

}//注:這裡for迴圈不可以寫成for(i-1;i>=0;i--)

//for中的第一項必須是賦值語句,否則按照i變數的本值計算而使i-1失效

for(

int j=i-

1;j>=

0;j--

)return0;

}

校招 扭蛋機 嗶哩嗶哩 2019

22娘和33娘接到了小電視君的扭蛋任務 一共有兩台扭蛋機,編號分別為扭蛋機2號和扭蛋機3號,22娘使用扭蛋機2號,33娘使用扭蛋機3號。扭蛋機都不需要投幣,但有一項特殊能力 扭蛋機2號 如果塞x x範圍為 0正整數 個扭蛋進去,然後就可以扭到2x 1個 扭蛋機3號 如果塞x x範圍為 0正整數 個扭...

遞迴題目練習 扭蛋機

通過率100 題目描述 22娘和33娘接到了小電視君的扭蛋任務 一共有兩台扭蛋機,編號分別為扭蛋機2號和扭蛋機3號,22娘使用扭蛋機2號,33娘使用扭蛋機3號。扭蛋機都不需要投幣,但有一項特殊能力 扭蛋機2號 如果塞x x範圍為 0正整數 個扭蛋進去,然後就可以扭到2x 1個 扭蛋機3號 如果塞x ...

2018華為校招機試題目練習

1.數字處理 題目描述 給出乙個不多於5位的整數,進行反序處理,要求 1 求出它是幾位數 2 分別輸出每乙個數字 空格隔開 3 按逆序輸出各位數字 僅數字間以空格間隔,負號與數字之間不需要間隔 輸入描述 位數不大於5的整數 輸出描述 1.整數字數 2.空格間隔輸出結果 3.逆序整數 include ...