随机产生100个数,统计出能被3和7整除的数字,然后从小到大排序打印出来(Java语言)急

如题所述

Java程序:

import java.util.Random;

public class Test{
public static void main(String[] args){
//随机产生100个数,统计出能被3和7整除的数字,然后从小到大排序打印出来(Java语言)急
Random rand = new Random();
int[] arr = new int[100];
int i, j, k;
int count = 0;
int temp;

//生成不重复的100个随机数(0~10000)
for(k=-1, i=0; i<arr.length; i++){
while(true){
temp = Math.abs(rand.nextInt()) % 10000;
for(j=0; j<=k; j++)
if(arr[j] == temp)
break;
if(j > k){
arr[++k] = temp;
break;
}
}
if(temp%3==0 && temp%7==0)
count++;
}

//排序
for(i=0; i<arr.length-1; i++){
k = i;
for(j=i+1; j<arr.length; j++)
if(arr[j] < arr[k])
k = j;
if(k != i){
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}

//输出(10个数一行)
for(i=0; i<arr.length; i++){
if(i%10==0 && i>0)
System.out.println();
System.out.printf("%6d", arr[i]);
}

System.out.println("\n其中能被3和7整除的数共有 " + count + " 个");
}
}

第一次运行测试:
72 164 240 271 443 758 1092 1122 1514 1680
1681 1721 2004 2064 2069 2180 2210 2410 2421 2498
2797 2839 2930 2932 2935 3100 3138 3183 3229 3416
3656 3663 3819 3859 3945 3951 3976 3996 4216 4302
4329 4484 4765 5044 5109 5261 5441 5490 5584 5606
5645 5773 6064 6078 6116 6147 6227 6259 6320 6490
6576 6630 6949 7217 7328 7337 7437 7541 7618 7755
7810 7893 7936 8167 8184 8204 8290 8317 8460 8596
8693 8759 8771 8787 8828 8841 8857 8889 9103 9149
9194 9224 9272 9304 9360 9463 9483 9556 9646 9777
其中能被3和7整除的数共有 3 个

第二次运行测试:
2 14 161 183 440 662 800 864 966 997
1033 1054 1218 1285 1381 1492 1678 1738 1748 1851
2010 2169 2262 2271 2286 2432 2555 2753 2771 2812
2864 2908 3006 3024 3134 3262 3288 3560 3599 3934
3951 3967 4018 4022 4039 4105 4285 4419 4538 4649
4760 4948 5097 5191 5237 5250 5460 5635 5856 6133
6150 6794 6800 6805 6938 6944 7125 7149 7406 7410
7431 7445 7481 7744 7835 7872 8054 8196 8201 8295
8364 8386 8399 8536 8614 8632 8665 8690 8740 8972
9136 9247 9360 9389 9398 9512 9544 9737 9803 9813
其中能被3和7整除的数共有 6 个
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-29
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10000; i++) {
if ((i % 3 == 0) && (i % 7 == 0)) {
list.add(i);
}
}
System.out.println(list.toString());
}
第2个回答  2012-01-29
要同时能被3和7整除还是只要能被3或7整除都算?
还有就是随机数的范围?从多少到多少?毕竟这影响产生随机数的大小和快慢追问

同时能被3和7整除 范围在10000以内吧 3Q

相似回答