System.out.println(ns[i]);
}
}
}
/**
* 将 n 转换为数字n=3 {1,2,3}
* @param n
* @return
*/
public static int[] ntoarray(int n){
int[] ns = new int[n];
for (int i = 0; ins.length; i++) {
ns[i] = i + 1;
}
return ns;
}
/**
* 判断数组里是否只有一个数不为0
* @param ns
* @return
*/
public static boolean isone(int[] ns){
boolean isone = false;
for (int i = 0; ins.length; i++) {
if(isone == falsens[i] != 0){
isone = true;
}else if(isone == truens[i] != 0){
return false;
}
}
return isone;
}
}
急求用java解决约瑟夫环的编程(接图片“显示“出环者”次序并给出最终的赦免者”)import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入总人数约瑟夫环Java语言代码:");
int totalNum = scanner.nextInt();
System.out.print("请输入报数约瑟夫环Java语言代码的大?。?);
int cycleNum = scanner.nextInt();
System.out.print("请输入第几个报数:");
int cur = scanner.nextInt();
yuesefu(totalNum, cycleNum ,cur);
scanner.close();
}
public static void yuesefu(int totalNum, int countNum,int cur) {
// 初始化人数
ListInteger start = new ArrayListInteger();
for (int i = 1; i = totalNum; i++) {
start.add(i);
}
//从第K个开始计数
int k = cur-1;
while (start.size() 0) {
k = k + countNum;
//第m人约瑟夫环Java语言代码的索引位置
k = k % (start.size()) - 1;
// 判断是否到队尾
if (k0) {
System.out.println(start.get(start.size()-1));
start.remove(start.size() - 1);
k = 0;
} else {
System.out.println(start.get(k));
start.remove(k);
}
}
}
}
求java代码是《约瑟夫环问题-猴子选大王》无界面!
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class LinkCircle {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n, k, m, i, j, count, p, q;
int[] a = new int[100];
ListInteger array = new LinkedListInteger();
p = 0;
q = 0;
count = 0;
n = in.nextInt();
m = in.nextInt();
for (i = 0; in; i++) {
array.add(i + 1);
System.out.printf(i != n - 1 ? "%d " : "%d\n", array.get(i));
}
int pos = -1;
int x = 0;
while(array.size() != 1)
{
//x = array.get(pos);
pos += m ;
if(pos = array.size())
{
pos = pos % array.size();
}
System.out.println("remove pos:" + (pos + 1) + ", value:" + array.get(pos));
array.remove(pos--);
System.out.print("Array : ");
for (i = 0; iarray.size(); i++) {
System.out.printf(i != array.size() - 1 ? "%d " : "%d\n\n", array.get(i));
}
}
System.out.println("res:" + array.get(0));
}
}
关于约瑟夫环问题,用java 编写程序,输出n个人出圈的顺序 , 书上的程序代码如下,但是有几点我搞不明白你这个好麻烦?。?理解 队列 和 桟 的区别
队伍先进先出FIFO
桟先进后出LIFO
本程序明显是队伍?。。?
import java.util.* ;
public class T {
public static void main(String[] args) {
ListInteger list = new LinkedListInteger();
//模拟15个人,编号是1-15
for(int i=1 ; i=15 ; i++) {
list.add(i);
}
//模拟 叫到7的人出圈
推荐阅读
- 用jquery做钉钉界面,前端如何开发钉钉h5微程序
- 路由器为什么没网络连接,新换的路由器怎么连接网络
- 右脑开发思维游戏,右脑开发思维导图
- python从零开始学习爬虫,python爬虫自学
- mysql怎么设置递增 mysql增加
- erp系统软件服装,服装erp系统操作流程
- 角色扮演双人真人游戏,双人角色扮演剧本
- erp系统的物料代码谁定,erp物料编码大全
- b站是go语言写的吗 b站用的语言