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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 圆桌_约瑟夫问题求解释(圆桌问题)Java

發布時間:2024/10/8 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 圆桌_约瑟夫问题求解释(圆桌问题)Java 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

publicclassJosephus{publicstaticvoidmain(Stringargs[]){if(args.length!=2)//處理參數數目不正確情況{System.out.println("PleaseInputanumber!");return;}inti,j,n,m;n=Integer.p...

public class Josephus

{

public static void main(String args[])

{

if(args.length != 2) //處理參數數目不正確情況

{

System.out.println("Please Input a number!");

return;

}

int i, j, n, m;

n = Integer.parseInt(args[0]);

m = Integer.parseInt(args[1]);

if (n <= 0 || m <= 0) //處理參數值不正確的情況

{

System.out.println("Paramter must bigger than zero!");

return;

}

int a[] = new int[n];

for (i = 0; i < n; i++) a[i] = i + 1;

int k = 1; //標識處理第k個離開的人

i = -1; //數組下標,下一個為0,即第一個人

while (true) //k等于n表示只剩下一個人了

{

for (j = 0; j < m;) //在圈中數m個人

{

i = (i + 1) % n;

if (a[i] >0) j++; //a[i] >0表示第i個人還沒有離開

}

if(k==n) break;

System.out.println("No." + a[i] + " is out!");

a[i] = -1; //表示該人離開

k++;

}

System.out.println("No." + a[i] + " is the winner!");

}

}

主要是我不明白while循環里面語句的意思,希望能過盡量把原理說明白一點。多謝了

展開

總結

以上是生活随笔為你收集整理的java 圆桌_约瑟夫问题求解释(圆桌问题)Java的全部內容,希望文章能夠幫你解決所遇到的問題。

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