日期:2014-05-20 浏览次数:20729 次
import java.util.ArrayList; import java.util.List; public class No2 { int number; int m; public static void doTT(int number,int m){ List<Integer> ins = new ArrayList<Integer>(); for(int i =0;i<number;i++){ ins.add(i); } int index = 0;//被T的人在列表中下标 for(int i =0;i<number;i++){ //从0开始数数 index = (index+m)%ins.size(); System.out.print(ins.remove(index)+" "); } } public static void main(String args[]){ doTT(10,4); } } 4 9 5 1 8 7 0 3 6 2 //什么环我早忘光了,呵呵。。。
------解决方案--------------------
NO:2参考实例
//filename:love_you.java
public class love_you
{
public static void main(String[] args)
{
final int N=13,S=3,M=5;
int i=S-1,j,k=N,g=1;
int[] a=new int[N];
for(int h=1;h<=N;h++)
a[h-1]=h;
System.out.println("\n出圈顺序为");
do
{
i=i+(M-1);
while(i>=k)
i=i-k;
System.out.print(" "+a[i]);
for(j=i;j<k-1;j++)
a[j]=a[j+1];
k--;
g++;
}while(g<=N);
}
}
------解决方案--------------------
偶是新手,先来抛个砖。
No1.
x+100=a^2,x+100+168=b^2 推出 a^2+168=b^2 即 2*2*2*3*7=(b-a)*(b+a);
针对这个组合编个程,求出可能的a,b ,最后求出x
No2.
ArrayList<Person> Persons=new ArrayList<Person>[N];
int n=0;
while(Persons.size()!=1)
{
if((n+1)%M!=0) continue;
System.out.println(Persons.get(n).getId()+":I'm out.");//Person 类里定义Id属性,getId方法
Persons.remove(n);
n++;
if(n>N-1) n=n-N+1;
}
------解决方案--------------------
在抛个砖手算就出来了。。。 public class pingfangshu { public static void main(String args[]){ int x = 0; int y2 = 0; int y1 = 0; // x+100==y1*y1; // x+168 == y2*y2; // (y2-y1)(y2+y1)== 68; // (1,68); // (2,34); // (4,17); // (17,4); // (34,2); // (68,1); // 68%2=34%2=17; // y2-y1 = 2;//y2必须为整数,所以其他情况排除 // y2+y1 = 34; y2 = 18;y1=16|-16; x = 96; } }
------解决方案--------------------
import java.util.ArrayList; import java.util.LinkedList; public class Test { public static void main(String[] args) { getNum(5); } public static void getNum(int m){ ArrayList list1 = new ArrayList();//原始数组{0,1,2,3,4} ArrayList list2 = new ArrayList(); //输出数组 for(int j = 0;j < 5;j++){ list1.add(j); } System.out.print("原始数组:"); for(int j = 0;j < list1.size();j++){ System.out.print(list1.get(j) + ","); } Object obj = null; int k = 0; //while循环原理:如果传进来的参数m小于原始数组list1的长度,就直接移除list1的第m-1个元素,并加入到list2 //如果大于list1的长度,取模得到k,分两种情况,如果等于0,直接得到list1的第0个元素,否则去list1的第k-1个元素,兵加入list2 while(!list1.isEmpty()){ if(m <= list1.size()){ obj = list1.remove(m - 1); list2.add(obj); }else{ k = m % list1.size();//取模 if(k != 0){ obj = list1.remove(k - 1); list2.add(obj); } else{ obj = list1.remove(0); list2.add(obj); } } } System.out.print("输出数组:"); for(int j = 0;j < list2.size();j++){ System.out.print(list2.get(j) + ","); } } }