java两个sb实验(自己太弱)

来源:互联网 发布:matlab矩阵转换为cell 编辑:程序博客网 时间:2024/05/08 18:02

仅以此文纪念自己的傻逼。。,哎,觉得自己好弱啊。。。

第一题:篮球的编号是1——31,红球的编号是1——16。

要求:随机输出6个篮球和1个红球。。

思路:每次随机获得下标,那么用数组最大长度代表的数值去填匆,那么就不会重复了。。

代码:

package test;import java.util.Random;public class testrand{public static void main(String[]  args)    {   int[] array=new int[8];   int[] seed=new int[32];   int[] vis=new int[32];   for(int i=0;i<=31;i++)   seed[i]=i+1;       Random rand=new Random();   int length=32;   for(int i=1;i<=6;i++)   {   int j=rand.nextInt(length-i);   array[i]=seed[j];   vis[array[i]]=1;   seed[j]=seed[length-i];        }while(true){   int j=rand.nextInt(15);   if(vis[seed[j]]==0&&seed[j]<=16)   {       array[7]=seed[j];       break;   }} for(int i=1;i<=6;i++)     System.out.print(array[i]+" "); System.out.println(array[7]);    }}

第三题:

题目:一个自然数的末尾为6,求一个自然数当把这个数的末尾放到首位后,后来得到的数是原来的数的4倍。

代码:

package test;public class testinteger {public static void main(String[]  args){int cnt,temp,a,b,p;for(int i=1;i<=Integer.MAX_VALUE;i++){cnt=0;temp=1;p=i;while(p!=0){p=p/10;cnt++;}for(int j=1;j<=cnt;j++)temp*=10;b=6*temp+i;a=i*10+6;if(a*4==b){System.out.println(a);break;}   }}}


0 0
原创粉丝点击