Java 基础题 (二)

    科技2024-07-12  73

    随机生成1000个1~100之内的整数,统计出不重复的数值和 其重复的次数 Random rand = new Random(); int[] arr = new int[1000]; int[] unique = new int[100]; int[] count = new int[100]; int k = 0; unique[k]=rand.nextInt(100)+1; arr[0]=unique[k]; count[k++]=1; for(int i=1,j;i<arr.length;i++) { arr[i]=rand.nextInt(100)+1; for ( j = 0; j <k; j++) { if(unique[j]==arr[i]){ break; } } if(j==k){ unique[k]=arr[i]; count[k++]=1; }else{ count[j]++; } } System.out.println(k+"个不重复元素"); for (int i = 0; i <k ; i++) { System.out.println(unique[i]+" : "+count[i]); } 一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高? float h=100,sum=0,sum1=0; for (int i = 1; i <10 ; i++) { sum=h+h/2; h=h/2; sum1 +=sum; if(i==9){ sum1 = sum1+h; } } System.out.println("共经过"+sum1+"米"+"第十次反弹"+h/2+"米"); 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 // 例如6=1+2+3.编程找出1000以内的所有完数。 for (int i = 1; i <=1000 ; i++) { int sum=0; for (int j = 1; j <i ; j++) { if(i%j==0){ sum +=j; } } if(sum==i) System.out.print(i+" "); } 用一维数组完成斐波那契数列前10项 int [] arr = new int[10]; arr[0]=0; arr[1]=1; for (int i = 2; i <arr.length; i++) { arr[i]=arr[i-1]+arr[i-2]; } for (int j = 0; j <arr.length ; j++) { System.out.print(arr[j]+"\t"); } 随机生成30个1~1000的随机数,求最大值,最小值,平均值 Random rand = new Random(); int [] arr = new int[30]; arr[0]=rand.nextInt(1000)+1; int max =arr[0],min=arr[0]; float sum=0; for (int i = 1; i <arr.length ; i++) { arr[i]=rand.nextInt(1000)+1; System.out.print(arr[i]+" "); sum +=arr[i]; if (max<arr[i]){max=arr[i];} if (min>arr[i]){min=arr[i];} } System.out.print("最大值:"+max+"最小值:"+min+"平均值:"+sum/30); 自然数累加,和达到5000时自然数的值为? int i,sum = 0; for ( i = 0; sum<5000 ; i++){ sum +=i; } System.out.println(i-1); System.out.print(sum); 10000以内的质数有哪些? for (int i = 2,count=0; i <10000 ; i++) { boolean isPrime = true; for (int j = 2; j <i/2 ; j++) { if(i%j==0){ isPrime = false; break; } } if (isPrime){ System.out.print(i+" "); if (++count%14==0) //换行 System.out.println(); } } 10个元素的3\3组合,只看内容,不看顺序 char[] arr = {'a','3','c','d','5','6','c','g','9','x'}; char[] arr1 = new char[10]; for (int i = 0; i <arr.length-2 ; i++) { for (int j = i+1; j <arr.length-1 ; j++) { for (int k =j+1; k <arr.length ; k++) { System.out.print(arr[i]+""+arr[j]+""+arr[k]+"\t"); } } } 冒泡 int [] arr={8,11,7,24,15,}; for (int i = 1,t; i <arr.length; i++) { for (int j = 0; j <5-i ; j++) { if (arr[j]>arr[j+1]){ t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; } } } for (int a :arr) { System.out.print(a+" "); } 选择 int [] arr={8,12,7,24,15,12,11,18,16,10,13,33,32}; int minIndex =0; for (int i = 0,t; i <arr.length-1 ; i++) { minIndex = i; for (int j = i+1; j <arr.length ; j++) if (arr[minIndex]>arr[j]) minIndex = j; if (minIndex!=i){ t = arr[minIndex]; arr[minIndex]=arr[i]; arr[i] = t; } } for (int i:arr) { System.out.print(i+" "); } 插入 int [] arr={8,11,7,24,15}; for (int i = 1; i <arr.length ; i++) { int temp =arr[i]; int j = i-1; for (; j >=0 ; j--) { if (temp<arr[j]){ arr[j+1]=arr[j]; }else{ break; } } if (arr[j+1]!=temp){ arr[j+1]=temp; } } for (int i:arr ) { System.out.print(i + " "); } 编写程序,求2—999中的同构数(也叫自守数)及其个数。 (注:某数的平方,其低位与该数本身相同,则称该数为同构数 ,如252=625,25是同构数。) int j,k=10; for (int i = 2; i <=999 ; i++) { if (i==k){ k *=10; } if (i*i%k==i){ System.out.print(i+" "); } }
    Processed: 0.009, SQL: 8