2017藍橋杯javaC組模擬題5
標題:報數遊戲
有 n (1<n<10000)個小朋友站成一個圓圈。
選定一個小朋友為1號,從他(她)開始順時針編號:1,2,3,4,...
遊戲開始! 從1號小朋友起,順時針報數,從1報起。
即:1號小朋友報1,2號小朋友報2,3號小朋友報3, ....
遊戲規定,報到數字 m(1<m<100) 的小朋友立即退出報數圈。
在他(她)的順時針方向的下一個小朋友(如果有的話)開始重新從1報數...
遊戲這樣一直進行下去,直到圈中只剩下一個小朋友。
求最後剩下的小朋友的編號。
輸入:兩個整數,n 和 m, 用空格分開。含義如上。
輸出:一個整數,表示最後剩下的小朋友的編號。
比如:
輸入:
15 3
程式應該輸出:
5
再比如:
輸入:
7 4
程式應該輸出:
2
資源約定:
峰值記憶體消耗(含虛擬機器) < 256M
CPU消耗 < 1000ms
數學解法
static int k=1;
public static void main(String[] args) {
}
@SuppressWarnings("unused")
private static void M1() {
Scanner input = new Scanner(System.in);
int int1 = input.nextInt();
int int2 = input.nextInt();
int s=0;
for(int i=2;i<=int1;i++)
{
s=(s+int2)%i;
}
System.out.println(s+1);
input.close();
}
連結串列解法
private Integer yueSeFu(int num1, int num2) {
LinkedList<Integer> list = new LinkedList<Integer>();
// 初始化資料佇列
for (int i = 1; i <= num1; i++) {
list.add(i);
}
int book = 1;
while (list.size() > 1) {
ListIterator<Integer> it1 = list.listIterator();
while (it1.hasNext()) {
it1.next();
if (book == num2) {
it1.remove();
book = 1;
} else {
book++;
}
}
}
return list.get(0);
}
相關文章
- 演算法筆記_127:藍橋杯2017模擬賽-本科組習題解答(Java)演算法筆記Java
- 藍橋杯第五屆JavaC組楊輝三角問題解決方法Java
- 2017省賽藍橋杯B組
- 藍橋杯真題
- 藍橋杯-奪冠概率模擬(取隨機數)隨機
- 藍橋杯javaB組備賽Java
- 2017年藍橋杯javaB組——等差素數列Java
- 2013藍橋杯題解c++A組C++
- 藍橋杯-座次問題
- 藍橋杯-日期問題
- 【藍橋杯考前突擊】第十一屆藍橋杯校賽模擬C/C++ 正整數序列C++
- 藍橋杯模板(三)python組Python
- 藍橋杯模板(二)python組Python
- 24藍橋杯-網路安全組
- 2013藍橋杯題解c組C++C++
- 藍橋杯 排序排序
- 藍橋杯例題-快速分揀
- 第十三屆藍橋杯省賽A組
- 第14屆藍橋杯B組國賽
- 【藍橋杯考前突擊】第十屆藍橋杯省賽C/C++大學B組 試題 D 數的分解C++
- TODO -藍橋杯2018年A組-付賬問題
- 2017年藍橋杯A組-分巧克力(整數二分)
- 2017第八屆藍橋杯C/C++ B組省賽第二題 秒解C++
- 藍橋杯-N皇后
- 2018藍橋杯省賽B組
- Java藍橋杯14年第五題Java
- 第十四屆藍橋杯第一期模擬賽 pythonPython
- 藍橋杯2023年A組-試題A-幸運數
- 第六屆藍橋杯省賽CC++B組C++
- 2013年藍橋杯JavaA組題4(顛倒的價牌)Java
- 第九屆藍橋杯省賽C++A組 倍數問題(dfs)C++
- 藍橋杯2023年A組-試題D-平方差
- 藍橋杯年號字串字串
- 藍橋杯-帶分數
- 藍橋杯-翻硬幣
- 藍橋杯-螞蟻感冒
- 藍橋杯 計算方程
- 藍橋杯-長草(BFS)