1. 程式人生 > >201712-2 遊戲 CCF計算機軟體能力認證考試

201712-2 遊戲 CCF計算機軟體能力認證考試

問題描述

試題編號: 201712-2
試題名稱: 遊戲
時間限制: 1.0s
記憶體限制: 256.0MB
問題描述:
問題描述
  有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,……,1號小朋友坐在n號小朋友的順時針方向。
  遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上一個小朋友報的數加1。若一個小朋友報的數為k的倍數或其末位數(即數的個位)為k,則該小朋友被淘汰出局,不再參加以後的報數。當遊戲中只剩下一個小朋友時,該小朋友獲勝。
  例如,當n=5, k=2時:
  1號小朋友報數1;
  2號小朋友報數2淘汰;
  3號小朋友報數3;
  4號小朋友報數4淘汰;
  5號小朋友報數5;
  1號小朋友報數6淘汰;
  3號小朋友報數7;
  5號小朋友報數8淘汰;
  3號小朋友獲勝。

  給定n和k,請問最後獲勝的小朋友編號為多少?
輸入格式
  輸入一行,包括兩個整數n和k,意義如題目所述。
輸出格式
  輸出一行,包含一個整數,表示獲勝的小朋友編號。
樣例輸入
5 2
樣例輸出
3
樣例輸入
7 3
樣例輸出
4
資料規模和約定
  對於所有評測用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。

解題思路

用隊列表示,先儲存隊首的資料top,當它不滿足要求則pop刪除,當它滿足要求則q.push(top)重新插入隊尾
不管是否滿足要求,報數num都要+1

程式碼

#include<queue>
#include<iostream>
using namespace std; int main() { int n, m, i, num = 1; cin >> n >> m; queue<int >q; for (i = 1; i <= n; i++) q.push(i); while (q.size() > 1) { int top = q.front(); q.pop(); if (num%m != 0 && num % 10 != m) { q.push(top); } num++; } cout
<< q.front(); return 0; }

相似問題——約瑟夫問題

一般形式:
約瑟夫問題是個有名的問題:N個人圍成一圈,從第一個開始報數,第M個將被殺掉,最後剩下一個,其餘人都將被殺掉。例如N=6,M=5,被殺掉的順序是:5,4,6,2,3,1。

程式碼

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    int n,m,a[1001] = {0};
    int flag = 0,i = 0,sum = 0;
    cin>>n>>m;
    while(flag!=n)//人還沒有死完
    {
        i++;
    if(i>n)//模擬環的結構 ,超過總數則從第一個人開始
        i = 1;
    if(a[i]==0)
        sum++;
    if(sum == m)
    {
        sum = 0;
        cout<<i<<" ";
        a[i] = 1;//標記死者座標
        flag++;
    }
    }
return 0;
}

相關推薦

201712-2 遊戲 CCF計算機軟體能力認證考試

問題描述 試題編號: 201712-2 試題名稱: 遊戲 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友

201803-2碰撞的小球 CCF計算機軟體能力認證考試

試題編號: 201803-2 試題名稱: 碰撞的小球 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個

第三次CCF計算機軟體能力認證考試題解(Java)--201412--Z字形掃描--100分通過

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n;

第六次CCF計算機軟體能力認證考試(第四題)

問題描述   某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。   現在,大臣們幫國王擬了一

CCF計算機軟體能力認證模擬試題參考答案(JAVA)(201703 1+2

1.分蛋糕: 小明今天生日,他有n塊蛋糕要分給朋友們吃,這n塊蛋糕(編號為1到n)的重量分別為a1, a2, …, an。小明想分給每個朋友至少重量為k的蛋糕。小明的朋友們已經排好隊準備領蛋糕,對於每個朋友,小明總是先將自己手中編號最小的蛋糕分給他,當這個朋友所分得蛋

CCF計算機軟體能力認證試題練習:201809-2 買菜

買菜 來源:CCF 標籤: 參考資料: 相似題目: 題目 小H和小W來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的一個廣場把菜裝上車,兩人都要買n種菜,所以也都

CCF計算機軟體能力認證試題練習:201712-3 Crontab

Crontab 來源: 標籤: 參考資料: 相似題目: 題目 輸入 輸出 輸入樣例 3 201711170032 201711222352 0 7

CCF計算機軟體能力認證 C++ 畫圖

問題描述   用 ASCII 字元來畫圖是一件有趣的事情,並形成了一門被稱為 ASCII Art 的藝術。例如,下圖是用 ASCII 字元畫出來的 CSPRO 字樣。    ..____.____..____..____...___.. ./._

CCF計算機軟體能力認證試題練習:201403-1 相反數

相反數 來源: 標籤: 參考資料: 相似題目: 題目 有 N 個非零且各不相同的整數。請你編一個程式求出它們中有多少對相反數(a 和 -a 為一對相反數

CCF計算機軟體能力認證 C++ 俄羅斯方塊

問題描述   俄羅斯方塊是俄羅斯人阿列克謝·帕基特諾夫發明的一款休閒遊戲。   遊戲在一個15行10列的方格圖上進行,方格圖上的每一個格子可能已經放置了方塊,或者沒有放置方塊。每一輪,都會有一個新的由4個小方塊組成的板塊從方格圖的上方落下,玩家可以操作板塊左右移動放到合適的

第十三次CCF計算機軟體能力認證CSP題解

/* csp13-1 跳一跳 2017/04/02 by Tawn */ #include <bits/stdc++.h> using namespace std; const int maxn = 100; int main() { int i;

CCF計算機軟體能力認證試題練習-門禁系統(Java參考答案學習記錄)

問題描述   濤濤最近要負責圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現。 輸入格式

CCF計算機軟體能力認證模擬試題-最大的矩形(Java參考答案學習記錄)

問題描述   在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i(1 ≤ i ≤ n)個矩形的高度是hi。這n個矩形構成了一個直方圖。例如,下圖中六個矩形的高度就分別是3, 1, 6, 5, 2, 3。   請找出能放在給定直方圖裡面積最大的矩形,它的邊要與座標軸平

第十三次CCF計算機軟體能力認證 題解(臨時版)

前言剛做完= =第五題寫炸了先大概講講我的思路,有機會我會寫個完整的題解(估計不可能啦,忙的要死)這些程式碼都是我比賽時候寫的,不保證正確性第一題水題,記錄最後一次的得分即可#include <cstdio> using namespace std; int ma

2016年4月CCF計算機軟體能力認證模擬試題程式碼參考

問題描述 給定n個正整數,找出它們中出現次數最多的數。如果這樣的數有多個,請輸出其中最小的一個。 輸入格式 輸入的第一行只有一個正整數n(1 ≤ n ≤ 1000),表示數字的個數。 輸入的第二行有n個整數s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤

CCF計算機軟體能力認證試題練習-影象旋轉(Java參考答案學習記錄)

問題描述   旋轉是影象處理的基本操作,在這個問題中,你需要將一個影象逆時針旋轉90度。   計算機中的影象表示可以用一個矩陣來表示,為了旋轉一個影象,只需要將對應的矩陣旋轉即可。 輸入格式   輸入的第一行包含兩個整數n, m,分別表示影象矩陣的行數和列數。   

CCF計算機軟體能力認證 C++ 碰撞的小球

問題描述   數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。   當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小

CCF計算機軟體能力認證試題練習-相鄰數對(Java參考答案學習記錄)

問題描述   給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。 輸入格式   輸入的第一行包含一個整數n,表示給定整數的個數。   第二行包含所給定的n個整數。 輸出格式

201604-1折點計數——CCF計算機軟體能力認證試題歷屆真題

一、原題 問題描述 試題編號: 201604-1 試題名稱: 折點計數 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   給定n個整數表示一個商店連續n天的銷售量。如果某天之前銷售量在增長,而後一天銷售量減少,則稱這一天

CCF計算機職業資格認證考試 201809-2 買菜

stream 朋友 職業 iostream 正整數 i++ 輸入格式 lap 時長 以下內容過於幼稚,請大佬自覺繞道。。 題目描述: 時間限制:1.0s內存限制:256.0MB問題描述:問題描述  小H和小W來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裏