A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package ma.jun;
  2. //第2题答案[code]package ma.jun;
  3. //第1题答案
  4. public class SumDemo {

  5.         /**
  6.          * 1. 打印输出一百以内的素数的累加和...
  7.          *
  8.          * ===========================================================
  9.          *                                                 运行结果
  10.          * ===========================================================
  11.          *        100以内素数有:2
  12.                 100以内素数有:3
  13.                 100以内素数有:5
  14.                 100以内素数有:7
  15.                 100以内素数有:11
  16.                 100以内素数有:13
  17.                 100以内素数有:17
  18.                 100以内素数有:19
  19.                 100以内素数有:23
  20.                 100以内素数有:29
  21.                 100以内素数有:31
  22.                 100以内素数有:37
  23.                 100以内素数有:41
  24.                 100以内素数有:43
  25.                 100以内素数有:47
  26.                 100以内素数有:53
  27.                 100以内素数有:59
  28.                 100以内素数有:61
  29.                 100以内素数有:67
  30.                 100以内素数有:71
  31.                 100以内素数有:73
  32.                 100以内素数有:79
  33.                 100以内素数有:83
  34.                 100以内素数有:89
  35.                 100以内素数有:97
  36.                 100以内素数和为:1060
  37.          */
  38.         public static void main(String[] args) {
  39.                 primeSum();       
  40.         }
  41. //判断 100之内的素数
  42.         public static void primeSum() {
  43.                 int sum = 0;
  44.                 for (int i = 2; i <= 100; i++) {
  45.                         int j;
  46.                        
  47.                         for (j = 2; j <= i-1; j++) {
  48. //                                拿要循环的数i 从2开始 除以 i-1之间的所有数 能整除代表不是素数
  49.                                 if (i % j == 0){
  50.                                         break;
  51.                                         }
  52.                         }
  53.                         if (j >= i) {
  54.                                 System.out.println("100以内素数有:"+i);
  55.                                 sum+=i;                       
  56.                         }
  57.                 }
  58.                 System.out.println("100以内素数和为:" + sum);
  59.         }

  60. }
复制代码
第3题研究中....
public class PrintPrimeDemo {

        /**
         * 将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
         *
            数组:  2   5    9    10   48     95   154     31  59    69
            
                                                            运行结果
            
            ===============================================================
            
                    排序前:
                        arr[2,5,9,10,48,95,154,31,59,69]
                        排序后:
                        arr[2,5,9,10,31,48,59,69,95,154]
                        替换素数后:
                        arr[0,0,9,10,0,48,0,69,95,154]
                        按规则输出后:
                        0
                         0
                          9
                           10
                            0
                             48
                              0
                               69
                                95
                                 154
                  
         */
        public static void main(String[] args) {
                int[] arr={2,5,9,10,48,95,154,31,59,69};
                System.out.println("排序前:");
                printArr(arr);
               
                sortArr(arr);//进行数组排序
               
                System.out.println("排序后:");
                printArr(arr);//排序后
               
                replacePrime(arr);//替换素数
               
                System.out.println("替换素数后:");
                printArr(arr);
               
                System.out.println("按规则输出后:");
                ruleOutArr(arr);//按规则输出
        }
        //替换 素数   4
        public static void replacePrime(int arr[]){
                for(int x=0;x<arr.length;x++){
                        int j;
                        for(j=2;j<arr[x];j++){
                                if(arr[x]%j==0){
                                        break;
                                }
                        }
                        if(j>=arr[x]){
//                                把0赋值给 x; 即素数
                                arr[x]=0;
                        }
                }
        }
//        排序数组
        public static void sortArr(int arr[]){
                for(int x=0;x<arr.length;x++){                       
                        for(int y=x+1;y<arr.length;y++){
                                if(arr[x]>arr[y]){
//                                        数值替换
                                        int temp=arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=temp;
                                }
                        }
                }
        }
//        打印数组
        public static void printArr(int arr[]){
                System.out.print("arr[");
                for(int x=0;x<arr.length;x++){
                        if(arr[x]==arr[arr.length-1])
                                System.out.print(arr[x]+"]");
                        else
                                System.out.print(arr[x]+",");
                }
                System.out.println();
        }
//         规则输出数组
        public static void ruleOutArr(int arr[]){
               
                for(int x=0;x<arr.length;x++){
                       
                        for(int y=0;y<x;y++){
                                System.out.print(" ");//打印空格
                        }
                        System.out.println(arr[x]);
                }
        }
}[/code]

评分

参与人数 1技术分 +5 收起 理由
夜默 + 5

查看全部评分

回复 使用道具 举报
  1. package ma.jun;

  2. public class YangHuiTriangle1 {

  3.         /**
  4.          *                                                                         输出杨辉三角
  5.          * ==========================================================================================
  6.          * 1
  7.          * 1 1
  8.          * 1 2 1
  9.          * 1 3 3 1
  10.          * 1 4 6 4 1
  11.          *                                        
  12.          * ==========================================================================================
  13.          *                                         arr[x][y]=arr[5]5]
  14.          * arr[0][0]=1;     
  15.          *
  16.          * arr[1][0]=1;         arr[1][1]=1;   
  17.          *
  18.          * arr[2][0]=1;         arr[2][1]=2; arr[2][2]=1;           
  19.          *
  20.          * arr[3][0]=1;         arr[3][1]=3; arr[3][2]=3;  arr[3][3]=1;
  21.          *
  22.          * arr[4][0]=1;  arr[4][1]=4; arr[4][2]=6;  arr[4][3]=4;  arr[4][4]=1;
  23.          *  
  24.          *
  25.          *
  26.          * --------------------------变化规律
  27.          *                 外层循环遍历条件arr.length 每个数组角标位0值为1 且数组角标位0 ; 1 不参与循环
  28.          *                 内层循环角标为y ,循环条件为<=x;值的变化如下:
  29.          *                 arr[x][y]=arr[x-1][y-1]+arr[x-1][y];
  30.          * --------------------------------------------------------------------------------------
  31.          *                                         int arr[][]=new int[9][9];
  32.          *                                                         输出结果为:       
  33.          * ======================================================================================
  34.          *         1       
  35.                 1        1
  36.                 1        2        1       
  37.                 1        3        3        1       
  38.                 1        4        6        4        1       
  39.                 1        5        10        10        5        1       
  40.                 1        6        15        20        15        6        1       
  41.                 1        7        21        35        35        21        7        1       
  42.                 1        8        28        56        70        56        28        8        1
  43.                 ======================================================================================
  44.          *                                                
  45.          */
  46.         public static void main(String[] args) {
  47.                 int arr[][]=new int[9][9];
  48.                 for(int x=0;x<arr.length;x++){
  49.                         arr[x][0]=1;
  50.                                 System.out.print(arr[x][0]+"\t");
  51.                         for(int y=1;y<=x;y++){
  52.                                 if(x==0)
  53.                                         break;
  54.                                 if(x==1){
  55.                                         arr[x][y]=1;
  56.                                         System.out.print(arr[x][y]);
  57.                                         break;
  58.                                 }
  59.                                 arr[x][y]=arr[x-1][y-1]+arr[x-1][y];//防止角标越界  
  60.                                 System.out.print(arr[x][y]+"\t");                               
  61.                         }
  62.                         System.out.println();//换行一次
  63.                 }
  64.         }
  65. }
复制代码
怎么倒序啊 楼主代码发来参考下吧

点评

for循环倒序输出二维数组....  发表于 2013-6-23 12:34
回复 使用道具 举报
  1. package ma.jun;

  2. public class YangHuiTriangle1 {

  3.         /**
  4.          *                                                                         输出杨辉三角
  5.          * ==========================================================================================
  6.          * 1
  7.          * 1 1
  8.          * 1 2 1
  9.          * 1 3 3 1
  10.          * 1 4 6 4 1
  11.          *                                        
  12.          * ==========================================================================================
  13.          *                                         arr[x][y]=arr[5]5]
  14.          * arr[0][0]=1;     
  15.          *
  16.          * arr[1][0]=1;         arr[1][1]=1;   
  17.          *
  18.          * arr[2][0]=1;         arr[2][1]=2; arr[2][2]=1;           
  19.          *
  20.          * arr[3][0]=1;         arr[3][1]=3; arr[3][2]=3;  arr[3][3]=1;
  21.          *
  22.          * arr[4][0]=1;  arr[4][1]=4; arr[4][2]=6;  arr[4][3]=4;  arr[4][4]=1;
  23.          *  
  24.          *
  25.          *
  26.          * --------------------------变化规律
  27.          *                 外层循环遍历条件arr.length 每个数组角标位0值为1 且数组角标位0 ; 1 不参与循环
  28.          *                 内层循环角标为y ,循环条件为<=x;值的变化如下:
  29.          *                 arr[x][y]=arr[x-1][y-1]+arr[x-1][y];
  30.          * --------------------------------------------------------------------------------------
  31.          *                                         int arr[][]=new int[9][9];
  32.          *                                                         输出结果为:       
  33.          * ======================================================================================
  34.          *         1       
  35.                 1        1
  36.                 1        2        1       
  37.                 1        3        3        1                                       
  38.                 1        4        6        4        1                                         
  39.                 1        5        10        10        5        1                               
  40.                 1        6        15        20        15        6        1       
  41.                 1        7        21        35        35        21        7        1       
  42.                 1        8        28        56        70        56        28        8        1
  43.                
  44.                                 * * * * *
  45.                                  * * * *
  46.                                   * * *
  47.                                    * *
  48.                                     *         * * * * *
  49.                                                * * * *
  50.                                                 * * *
  51.                                                  * *
  52.                                                   *
  53.                 ======================================================================================
  54.                                                                    1 8 28 56 70 56 28 8 1
  55.                                                                          1 7 21 35 35 21 7 1
  56.                                                                            1 6 15 20 15 6 1
  57.                                                                       1 5 10 10 5 1
  58.                                                                        1 4 6 4 1
  59.                                                                                1 3 3 1
  60.                                                                          1 2 1
  61.                                                                           1 1
  62.                                                                            1
  63.                                                                           修改后 运行结果这造型! ===========
  64.          */
  65.         public static void main(String[] args) {
  66.                 int arr[][]=new int[9][9];
  67.                 for(int x=0;x<arr.length;x++){
  68.                         arr[x][0]=1;
  69. //                                System.out.print(arr[x][0]+"\t");
  70.                         for(int y=1;y<=x;y++){
  71.                                 if(x==0)
  72.                                         break;
  73.                                 if(x==1){
  74.                                         arr[x][y]=1;
  75. //                                        System.out.print(arr[x][y]);
  76.                                         break;
  77.                                 }
  78.                                 arr[x][y]=arr[x-1][y-1]+arr[x-1][y];//防止角标越界  
  79. //                                System.out.print(arr[x][y]+"\t");                               
  80.                         }
  81. //                        System.out.println();//换行一次
  82.                 }
  83. //                倒序数组2维数组!!
  84.                 for(int x=arr.length-1;x>=0;x--){
  85.                         for(int w=x;w<arr.length-1;w++){
  86.                                 System.out.print(" ");
  87.                         }
  88.                         for(int y=x;y>=0;y--){
  89.                                 System.out.print(arr[x][y]+" ");
  90.                         }
  91.                         System.out.println();
  92.                 }
  93.         }
  94. }
复制代码
感谢 帮主的指点 初步结果验证正确!很想看看楼主的代码怎么写 还有解题思路,参考下!不知可不可以.
回复 使用道具 举报
majunm 发表于 2013-6-23 15:45
感谢 帮主的指点 初步结果验证正确!很想看看楼主的代码怎么写 还有解题思路,参考下!不知可不可以. ...

结果是正确的 复制时出现了点小问题D:\Documents\Pictures\result.jpg
回复 使用道具 举报
这个是结果

result.JPG (16.91 KB, 下载次数: 0)

result.JPG

点评

话说这三道题,我都没自己敲代码,以前做过,所以考虑一下细节问题...  发表于 2013-6-23 16:52

评分

参与人数 1技术分 +3 收起 理由
夜默 + 3

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马