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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【算法】约瑟夫环

發布時間:2025/3/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法】约瑟夫环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有n?個人圍城一圈每次從1數起數到3就把那個人提出圈子,最后只保留一個人。

輸入:?輸入人數字符串
輸出:把最后一個人所保留位置返回出來。
比如你輸入11?的話即有11個人?[1,2,3,4,5,6,7,8,9,10,11]?。返回的是7

?

?

package sj1;import java.util.ArrayList; import java.util.List;/**** @author Administrator* 剔出某數字*/ public class sjt1_2 {int number; //總數int m;//要被剔除的數字/*** 剔除方法* @param number 總數* @param m 數數剔除的數字,比如3*/public static void delete(int number, int m) {List<Integer> ins = new ArrayList<Integer>();/* 塞數字 */for (int i = 1; i < number+1; i++) {ins.add(i);}System.out.println("構造了原始值:" + ins);int index = 0;// 被T的人在列表中下標m = m-1;//減一算出下標for (int i = 0; i < number; i++) {//最后一個跳出if(ins.size() ==1 ){break;}// 從0開始數數index = (index + m) % ins.size();//核心算法 System.out.println(index);System.out.println("第 ["+(i+1)+"] 次剔除了" + ins.get(index));ins.remove(index);System.out.println("還剩下:" + ins);}}public static void main(String args[]) {delete(11, 3);}

?

轉載于:https://www.cnblogs.com/chuanyueinlife/p/10096117.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【算法】约瑟夫环的全部內容,希望文章能夠幫你解決所遇到的問題。

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