日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【模拟】小游戏

發布時間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【模拟】小游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小游戲

題目大意:

有n個數形成一個環,從第S個開始,先往后數N個數然后把這個數取出來,再往前數K個數把這個數取出來,問取的數字依次是什么

原題:

題目描述

【題目背景】

yk同學是一個灰常灰常有愛的同學,雖然各種老師總是讓他干看似很無聊的事情,但是他總是發明一些好玩的辦法來完成這些無聊的任務,這樣yk就不會整天那么憂郁啦~ 這次,老師又給他布置了一個任務,讓他搬凳子~~ 當然他非常有愛地把這個任務發展成了一個小小小游戲~ hoho,現在他讓你來玩這個小游戲,have a try~

【題目描述】

現在有M個凳子排成一個圈,我們順時針給凳子依次編號為1,2,3……,M。我們從編號為S的凳子開始,每次先順時針數N個凳子,將第N個凳子搬走,然后再逆時針數K個凳子,將第K個凳子搬走。每次都這樣先順時針數N個,再逆時針數K個,直到只剩1個凳子,直接搬走。最后,我們想知道M個凳子的搬走順序。

輸入

共4行,每行1個數,分別表示題目中的M,S,N,K。

輸出

僅一行,凳子搬走的序列,每個編號間有一個空格。

輸入樣例

8 1 3 2

輸出樣例

3 1 5 2 7 4 6 8

說明

【數據范圍】

100% M<=1000

解題思路:

直接枚舉就行了

代碼:

#include<cstdio> using namespace std; int n,m,k,l,o,nn,p[1005]; int main() {scanf("%d %d %d %d",&n,&m,&k,&l);for (int i=1;i<=n;++i)p[i]=1;k=(k-1)%n+1;//走了一環的就刪掉l=(l-1)%n+1;o=m-1;nn=n;while (nn){for (int i=1;i<=k;++i){o++;//累加if (o>n) o=1;//到達邊界while (!p[o])//不在了{o++;if (o>n) o=1;}}p[o]=0;//刪掉printf("%d ",o);//輸出nn--;//少一個if (!nn) break;//如果for (int i=1;i<=l;++i){o--;//往左走if (!o) o=n;while (!p[o]){o--;if (!o) o=n;}}p[o]=0;//同上printf("%d ",o);nn--;} }

總結

以上是生活随笔為你收集整理的【模拟】小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。