* 假设有n个人围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列..... * 如此反复到所有人全部出列为止。设n个人的编号分别为1,2,3..
2016-05-08 23:31
489 查看
* @author Administrator
*思路:
*定义一个长度为n的数组,里面的数值全部为1,然后数组内部的值相加,等于m时输出该位置的下标,然后把这个值记为0
*/
public
class Test03 {
public
static void main(String[]
args) {
@SuppressWarnings("resource")
Scanner input =new Scanner(System.in);
System.out.println("请输入n的整数值:");
int
n=input.nextInt();
System.out.println("请输入m的整数值:");
int
m=input.nextInt();
int []
arr=atSort(n,m);
int []
arrS=new
int [n];
//定义n的数组
for(int
i=0;i<n;i++){
arrS[i]=i+1;
}
//输出最终的值
for(int
i=0;i<n;i++){
System.out.print(arrS[arr[i]]+" ");
}
}
public
static int[] atSort(int
n,int
m){
//定义值全部为1的数组arr
int []
arr =new
int[n];
for(int
i=0;i<n;i++){
arr[i]=1;
}
//定义装下标元素的数组arrF
int []
arrF =new
int [n];
//给arrF赋值,主要算法
int
j=0;
int
count=0;
for(int
i=0;i<n;i++){
int
sum=0;
//循环累加arr[i],当等于sum等于m时退出,得到此时的下标
while(sum!=m){
sum=sum+arr[j];
count=j;
if(j<n-1){
j++;
}else{
j=0;
}
}
//将下标赋值为arrF数组
arrF[i]=count;
//将arr数组位置的值变为0
arr[count]=0;
}
return
arrF;
}
}
*思路:
*定义一个长度为n的数组,里面的数值全部为1,然后数组内部的值相加,等于m时输出该位置的下标,然后把这个值记为0
*/
public
class Test03 {
public
static void main(String[]
args) {
@SuppressWarnings("resource")
Scanner input =new Scanner(System.in);
System.out.println("请输入n的整数值:");
int
n=input.nextInt();
System.out.println("请输入m的整数值:");
int
m=input.nextInt();
int []
arr=atSort(n,m);
int []
arrS=new
int [n];
//定义n的数组
for(int
i=0;i<n;i++){
arrS[i]=i+1;
}
//输出最终的值
for(int
i=0;i<n;i++){
System.out.print(arrS[arr[i]]+" ");
}
}
public
static int[] atSort(int
n,int
m){
//定义值全部为1的数组arr
int []
arr =new
int[n];
for(int
i=0;i<n;i++){
arr[i]=1;
}
//定义装下标元素的数组arrF
int []
arrF =new
int [n];
//给arrF赋值,主要算法
int
j=0;
int
count=0;
for(int
i=0;i<n;i++){
int
sum=0;
//循环累加arr[i],当等于sum等于m时退出,得到此时的下标
while(sum!=m){
sum=sum+arr[j];
count=j;
if(j<n-1){
j++;
}else{
j=0;
}
}
//将下标赋值为arrF数组
arrF[i]=count;
//将arr数组位置的值变为0
arr[count]=0;
}
return
arrF;
}
}
相关文章推荐
- RRC Connection Reconfiguration
- HDU 4918 Query on the subtree
- Hibernate入门(五)hibernate的级联(cascade)表操作
- 研究方向和计划
- Windows下多线程编程(一)
- recursive neural network梳理(CS224D lecture9)
- Spring MVC 学习 之 - URL参数传递
- Binder学习笔记(五)—— Parcel是怎么打包数据的?
- * 有一对兔子,从出生后第3个月起每个月都生一对兔子,这对小兔子长到第三个月后每个月又生一对 * 小兔子,如此循环下去。假如兔子都不死,问,两年内,每个月的兔子有多少对? * @author A
- CUDA学习笔记六
- extern "c"用法解析
- MYSQL操作中错误The user specified as a definer ('root'@'%') does not exist的解决
- [javaSE] 集合框架(ArrayList,LinkedList,Vector)
- 用Java写脚本,常用的一些方法
- 层次性结构
- 5678
- HTML5--》details
- 20145331实验五 Java网络编程及安全
- Android-View的手势分发
- Android知识导图-View的手势分发