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 ...