pos機(jī)游戲解決方案

 新聞資訊2  |   2023-07-31 21:23  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)游戲解決方案,自學(xué) C++ 第 7 課 跳躍游戲的知識,也有很多人為大家解答關(guān)于pos機(jī)游戲解決方案的問題,今天pos機(jī)之家(m.afbey.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機(jī)游戲解決方案

pos機(jī)游戲解決方案

跳躍游戲規(guī)則描述:先給定一個非負(fù)整數(shù)數(shù)組nums,例如 [4,4,0,2,3,3,1,2,4,2],假定一臺機(jī)器人要從nums[0]起跳,num[0]元素的值表示能跳躍的最大距離,也就是說,機(jī)器人第一次可跳躍到(4,0,2,3)中任意位置,第二次跳躍從第一次跳躍的落腳點(diǎn)起跳,可跳躍的最大距離是第一次跳躍的落腳點(diǎn)元素值。如果落腳點(diǎn)元素的值為0,表示無法跳躍。問,機(jī)器人針對一個給定數(shù)組(假設(shè)有n個元素),從nums[0]到nums[n-1],最少需要跳躍幾次?并標(biāo)記出每次跳躍落腳點(diǎn)的坐標(biāo)。

跳躍游戲需要每次做出選擇時,都要選擇下一次能夠有更多選擇或者更遠(yuǎn)距離的位置,每一次選擇都是最優(yōu)選擇,最后累積出的結(jié)果也是最優(yōu)的解。完成跳躍游戲的程序和算法很多,如何分析、推導(dǎo)其過程以及所有可能情況,通過目前所學(xué)的有限編程知識完成上述功能?

分析第一次跳躍過程,從nums[0](nums[0]≠0)起跳,首先判斷nums[0+1]到nums[0+nums[0]]區(qū)間內(nèi)各元素能達(dá)到的最大邊界 maxpos1 = j+nums[0+j],j 值范圍為1到nums[0],并獲得第一次跳躍落腳點(diǎn)的坐標(biāo) indexx1。數(shù)組nums為[4,4,0,2,3,3,1,2,4,2]時,第一次跳躍每個可選落腳點(diǎn)所能達(dá)到的最大邊界maxpos1分別為 1+4=5;2+0=2 (0 無法跳躍);3+2=5;4+3=7;所以最優(yōu)選擇的落腳點(diǎn)坐標(biāo) indexx1=4。如果數(shù)組nums變?yōu)閇4,4,0,4,3,3,1,2,4,2],那么會出現(xiàn)兩個最大值,對于跳躍過程中出現(xiàn)的多個解,為了方便程序處理,皆取最后一個滿足maxpos1的元素坐標(biāo)。

第一次跳躍

第二跳躍,是從nums[indexx1]起跳,判斷nums[indexx1+1]到nums[indexx1+nums[indexx1]]區(qū)間內(nèi)各元素能達(dá)到的最大邊界maxpos2 = j+nums[indexx1+j],j值范圍為1到nums[indexx1],并獲得第一次跳躍落腳點(diǎn)的坐標(biāo) indexx2。對于數(shù)組[4,4,0,2,3,3,1,2,4,2],從nums[4]起跳,第二次跳躍每個可選落腳點(diǎn)所能達(dá)到的最大邊界maxpos2分別為1+3=4;2+1=3;3+2=5;所以最優(yōu)選擇的落腳點(diǎn)坐標(biāo) indexx2=indexx1+3=7。

第二次跳躍

第三次跳躍以此類推,通過判斷indexx2+maxpos3的值是否大于等于9來確定,下一跳躍是否能夠到達(dá)nums[9],數(shù)組[4,4,0,2,3,3,1,2,4,2]的indexx2+maxpos3等于9,所以最少需要3次跳躍到達(dá)終點(diǎn)。

對于非零數(shù)組nums,還存在幾種特殊情況:

一是nums[0]等于0,即無法起跳,例如[0,1,2,3,1];

二是nums[0]大于或等于n-1,即一次跳躍即可到達(dá)終點(diǎn),例如[5,2,3,0,1,6];

三是所有選擇的最終落腳點(diǎn)皆為0,即無法繼續(xù)跳躍,例如[3,2,1,0,1,2,3]或[3,3,2,1,0,1]

根據(jù)上述分析,除了sums[]數(shù)組,每次跳躍后可能達(dá)到的最大邊界和落腳點(diǎn)坐標(biāo)分別用兩個數(shù)組maxpos[]和indexx[],使用vector聲明數(shù)組并默認(rèn)初始化為0。

vector 一維數(shù)組

編寫的程序&注解

測試結(jié)果

知識點(diǎn):

? fmax(x,y); 返回兩個參數(shù)中的最大值,該函數(shù)定義于<cmath>標(biāo)準(zhǔn)庫頭文件中。英文對照說明:fmax() function is a library function of cmath header, it is used to find the maximum value of the given numbers, it accepts two number and returns the larger one.

? || 是邏輯或運(yùn)算符,只要運(yùn)算符||兩邊表達(dá)式有一個為ture,運(yùn)算結(jié)果就為ture,判斷語句執(zhí)行;只有運(yùn)算符||兩邊表達(dá)式均為false,運(yùn)算結(jié)果才是false,判斷語句不執(zhí)行;如果前面一個表達(dá)式為true,那么就不會再執(zhí)行和判斷后面的表達(dá)式。

|| 運(yùn)算符示例

? break作用是結(jié)束跳出循環(huán)體,直接執(zhí)行循環(huán)體以外的下一行語句。在單個循環(huán)語句中,break作用是跳出該循環(huán)語句;在嵌套循環(huán)中,break作用是跳出最近的循環(huán),并且不影響外層的循環(huán)。

自學(xué) C++ 第 1 課 數(shù)字大小排序

自學(xué) C++ 第 2 課 數(shù)組包含關(guān)系

自學(xué) C++ 第 3 課 正整數(shù)反序輸出

自學(xué) C++ 第 4 課 計(jì)算體積及表面積

自學(xué) C++ 第 5 課 楊輝三角

自學(xué) C++ 第 6 課 二維數(shù)組找最值

以上就是關(guān)于pos機(jī)游戲解決方案,自學(xué) C++ 第 7 課 跳躍游戲的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機(jī)游戲解決方案的知識,希望能夠幫助到大家!

轉(zhuǎn)發(fā)請帶上網(wǎng)址:http://m.afbey.com/newsone/92524.html

你可能會喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。