发表时间:2010-11-03
public List<int> foo(List<int> a, int i)
{ List<int> b = new List<int>(); for (int ii = 1; ii <= 9; ii++) { foreach (int c in a) { if (int.Parse(c.ToString() + ii.ToString()) % i == 0) { if (c.ToString().IndexOf(ii.ToString()) < 0) b.Add(int.Parse(c.ToString() + ii.ToString())); } } } if (i == 9) return b; else foo(b, ++i); return b; } //------------------------------------------------------------ //调用 List<int> a = new List<int>(); for (int i = 1; i <= 9; i++) a.Add(i); foo(a, 2).ToString() //------------------------------------------------------------ |
|
发表时间:2010-11-03
public class CopyOfTest{ public static int[] sort(int a[]) { int s=0; int l=a.length; int anew[]=new int[24]; int num=0; for(int j=0;j<l;j++) { s=a[j]*1000; for(int k=0;k<l;k++) { if(j==k)continue; else{ s=a[j]*1000+a[k]*100; for(int m=0;m<l;m++) { if(j==m || k==m)continue; else{ s=a[j]*1000+a[k]*100+a[m]*10; for(int n=0;n<l;n++) { if(j==n ||k==n || m==n)continue; else{ s=a[j]*1000+a[k]*100+a[m]*10+a[n]; anew[num]=s; num++; } } } } } } } return anew; } public static void main(String[] args){ int a2468[]={2,4,6,8}; int a1379[]={1,3,7,9}; int sort2468[]=sort(a2468); int sort1379[]=sort(a1379); for(int i=0;i<24;i++) { int m2=sort2468[i]; for(int j=0;j<24;j++) { int m1=sort1379[j]; int a1=m1/1000; int a2=m2/1000; int a3=m1/100-a1*10; int a4=m2/100-a2*10; int a6=(m2%100)/10; int a7=(m1%100)/10; int a8=m2%10; int a9=m1%10; if((a1+a2+a3)%3!=0)continue; else{ if((a3*10+a4)%4!=0)continue; else{ if((a6+a4+5)%3!=0)continue; else{ if((a1*100000+a2*10000+a3*1000+a4*100+5*10+a6-a7*2)%7!=0)continue; else{ if((a6*100+a7*10+a8)%8!=0)continue; else{ if((a1+a2+a3+a4+5+a6+a7+a8+a9)%9!=0)continue; else{ System.out.println("the nume is "+a1+a2+a3+a4+"5"+a6+a7+a8+a9); } } } } } } } } } } |
|
发表时间:2010-11-03
看错题意
|
|
发表时间:2010-11-06
public class Test2 { private static Stack<Integer> stack = new Stack<Integer>(); public static void main(String[] args) { List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9); find(list); } public static void find(List<Integer> list){ if(list.isEmpty()){ System.out.println(stack); } for(int i=0;i<list.size();i++){ List<Integer> tempList = new ArrayList<Integer>(list); int t = tempList.remove(i); stack.push(t); if(isLegal()){ find(tempList); } stack.pop(); } } public static boolean isLegal(){ int num = 0; for(int i:stack){ num = num*10+i; } return num%stack.size()==0; } } |
|
发表时间:2010-11-07
import java.util.Date; /* * 1-9九个数字组成一个九位数,数字没有重复。如果从左边起取出1个数字, * 需要能被1整除,取出两个数字组成的数能被2整除,取出三个数字组成的数 * 能被3整除,依次类推。。。每次取数都是从左边取。问,这个数是什么? * 给出求解此数的算法。 */ public class first { private static int end= 987654321; private static int start=123456789; private static boolean flag=true; public static void main(String[] args) { int cout=0; Date starttime=new Date(); System.out.println("开始时间是:"+starttime); for(int i=start;i<=end;i++) { if(isbe(i,9)==true) { cout++; System.out.println(i); } } Date endtime=new Date(); System.out.println("一共有"+cout+"数"); System.out.println("结束时间是:"+endtime); } public static boolean isbe(int num,int i) { if(num%i==0&&i!=1) { i--; isbe(num/10,i); } else { if(i==1) { flag=true; } else { flag=false; } } return flag; } } 不知道对不对,有2413个 |