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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 巩建 于 2013-6-24 12:59 编辑

                       截止时间:6.23晚10点
      你们真心让我伤不起了....结果忘了写的,不断改代码的,自己改了把对的改成错的,需要提示多少遍才能一次解决好所有问题?
      你们做完题,不要立即提交答案,虽然这个答题活动,你只要不是改了N次,一般是会给分的...但是你们也别这样整我啊...
      本次答题活动封顶五分,是我们版主小看了你们的实力,但是下次,再一个人占好几层,不断改代码,不贴结果的,版主会怒了的哦!{:soso__5246682039739057267_3:}

    活动结束后,分没有加的联系我QQ,备注 论坛 id  你的真实姓名, 发信息   链接 楼层   
    买了题的告诉我声,给您补上,广大黑马学员们,我错了{:soso_e154:}...
     其实2题只是把排序、素数判定和空格输出组合在一起,3题再百度可以搜到,就是变了输出方式。
     希望大家都能做一下,也相当于检查自己的学习情况... 有个零基础开始学的哥们能做出来,我相信你们都能做出来...

要求:
1.题目要自己做出来,即使百度也没有哦,原创的。

2.将程序写的清晰明了.注释到位.
3.回复的时候把代码贴出来.和运算后结果的图片,

  不会弄图片的贴出结果来,不要蒙混过关,随机抽查验证,违者扣技术分哦
4. 需要写出完整代码,不要用几句数学语言就解决了。
5.代码放到代码块中,不要压缩包(压缩包没分)
6.要写注释,没注释的没分...
7.对于本次活动的俩道题,存在异议的可以联系我。。。有奖励的哦...
8.技术分这个东东么,只要结果正确,注释清晰,2分到手,当然也可能是3分哦,俩道题一起做的,100层以前是2-5分哦。


题目:
    1.  打印输出一百以内的素数的累加和...  
    2.将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
    数组:  2   5    9    10   48     95   154     31  59    69
    3.手动输入一个自然数N,反向打印N行杨辉三角。

      2. 阶梯状输出            
      3.倒序杨辉三角











评分

参与人数 2技术分 +4 收起 理由
袁梦希 + 3 赞一个!
Sword + 1 不错的活动!

查看全部评分

171 个回复

倒序浏览
还要钱买啊,太坑了吧
回复 使用道具 举报
第一个在这里:
  1. import java.util.Arrays;

  2. /*
  3. * 将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  4. * 数组:  2   5    9    10   48     95   154     31  59    69
  5. **/

  6. public class TestQ1 {

  7.         public static void main(String[] args) {
  8.                 int[] arr = {2,5,9,10,48,95,154,31,59,69};               
  9.                
  10.                 Arrays.sort(arr);                        //升序排列
  11.                
  12.                 for(int x=0; x<arr.length; x++)                //遍历
  13.                 {
  14.                         if(isSuShu(arr[x]))                                //如果是素数, 赋零
  15.                         {
  16.                                 arr[x] = 0;
  17.                         }
  18.                 }
  19.                
  20.                 show(arr);                                                        //输出
  21.                        
  22.         }
  23.        
  24.         public static boolean isSuShu(int num)                                //静态方法, 用于判断是否是素数
  25.         {
  26.                 for(int i=2; i<num; i++)
  27.                 {
  28.                         if(num%i == 0)
  29.                         {
  30.                                 return false;
  31.                         }
  32.                 }
  33.                 return true;
  34.         }

  35.         public static void show(int[] arr)                                //静态方法, 用于阶梯输出
  36.         {
  37.                 for(int x=0; x<arr.length; x++)                       
  38.                 {
  39.                         int y=x;
  40.                         while(y>0)                                                                //输出与当前元素脚标数相同个数的空格
  41.                         {
  42.                                 System.out.print(" ");
  43.                                 y--;
  44.                         }
  45.                         System.out.print(arr[x] + "\n");
  46.                 }
  47.         }
  48.        
  49. }
复制代码
输出:
0
  0
    9
      10
        0
          48
            0
              69
                95
                  154

===============
第二个麻烦, 没写, 要赶紧写博客了. .

评分

参与人数 1技术分 +5 黑马币 +12 收起 理由
夜默 + 5 + 12 很给力!

查看全部评分

回复 使用道具 举报
  1. class ZhuanFen
  2. {
  3. public static void main(String[] args)
  4. {
  5. print();
  6. }

  7. /*
  8. * 1.将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  9. 数组: 2 5 9 10 48 95 154 31 59 69

  10. * */

  11. public static boolean suShu(int i)//定义一个判断是否为素数的方法。
  12. {
  13. int count = 0;
  14. if (i == 1)
  15. return false;
  16. for(int x=1;x<=i;x++)
  17. {
  18. if((i%x)==0)
  19. count++;
  20. }
  21. if(count>2)
  22. return false;
  23. else
  24. return true;

  25. }

  26. public static void print()
  27. {
  28. int []i = {2,5,9,10,48,95,154,31,59,69};//来个int数组存需要处理的数
  29. System.out.print("数组改变前");
  30. for(int x=0;x<i.length-1;x++)
  31. {
  32. System.out.print(i[x]+" ");
  33. }
  34. System.out.println(i[i.length-1]);

  35. int []arr = new int[i.length];//来个新数组存素数变0后的数组。
  36. for(int x=0;x<i.length;x++)//遍历数组并打印。
  37. {

  38. if(suShu(i[x]))//调用suShu方法判断原数组的数是否为素数
  39. arr[x] = 0;
  40. else
  41. arr[x]=i[x];
  42. }
  43. System.out.print("数组改变后");
  44. for(int x=0;x<arr.length-1;x++)
  45. {
  46. System.out.print(arr[x]+" ");
  47. }
  48. System.out.println(arr[arr.length-1]);

  49. for(int x=0;x<arr.length;x++)
  50. {
  51. for(int y=0;y<=x;y++)
  52. {

  53. if(x==y)//为了打印阶梯型。
  54. System.out.println(arr[x]);
  55. else
  56. System.out.print(" ");
  57. }
  58. }
  59. }
  60. }
复制代码


_______________________________________________________________________________________________________________________________________________________________

  1. <P>class ZhuanFen1
  2. {
  3. public static void main(String args[])
  4. {
  5. int N =4;

  6. yanghui(N);
  7. }
  8. /*
  9. * 2.手动输入一个自然数N,反向打印N行杨辉三角。

  10. * */
  11. public static void yanghui( int N)
  12. {

  13. int a[][] = new int[N+1][];//定义一个二维数组。
  14. for(int i=0;i<=N;i++)//初始化二维数组
  15. {
  16. a[i] = new int[i+1];
  17. }

  18. for (int i = 0; i <= N; i++)//循环行数
  19. {

  20. for (int j = 0; j <= a[i].length - 1; j++) //循环列数
  21. {

  22. if (i == 0 || j == 0 || j == a[i].length - 1)

  23. a[i][j] = 1;//将两侧元素设为1

  24. else//元素值为其正上方元素与左上角元素之和

  25. a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
  26. }
  27. }

  28. for (int i=a.length-1-1;i>=0;i--)
  29. {

  30. for(int x =i+1;x<N;x++)
  31. System.out.print(" ");
  32. for (int j = 0; j <=a[i].length - 1; j++)
  33. System.out.print(a[i][j] + " ");

  34. System.out.println();//换行
  35. }

  36. }
  37. }</P>
  38. <P> </P>
复制代码



评分

参与人数 1技术分 +3 收起 理由
夜默 + 3 第一个题还有点小问题..自己改下...

查看全部评分

回复 使用道具 举报
  1. public static void main(String[] args) throws Exception {
  2.                 int[] A = { 2, 5, 9, 10, 48, 95, 154, 31, 59, 69 };
  3.                 Arrays.sort(A);
  4.                 for (int i = 0; i < A.length; i++)
  5.                         if (SuShu(A[i]))// 是素数则置为零
  6.                                 A[i] = 0;
  7.                 for (int i = 0; i < A.length; i++) {// 阶梯打印结果
  8.                         for (int j = 0; j < i; j++)
  9.                                 System.out.print(" ");// 打印前导空格
  10.                         System.out.println(A[i]);
  11.                 }
  12.         }

  13.         public static boolean SuShu(int a) { // 判断是否是素数
  14.                 if (a == 2)
  15.                         return true;
  16.                 for (int i = 2; i < Math.sqrt(a); i++) {
  17.                         if (a % i == 0)
  18.                                 return false;
  19.                 }
  20.                 return true;
  21.         }
  22. }
复制代码

QQ截图20130621151932.jpg (21.85 KB, 下载次数: 0)

QQ截图20130621151932.jpg

评分

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

查看全部评分

回复 使用道具 举报
王靖远 发表于 2013-6-21 15:18
__________________________________________________________________________________________________ ...
  1. class ZhuanFen
  2. {
  3. public static void main(String[] args)
  4. {
  5. print();
  6. }

  7. /*
  8. * 1.将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  9. 数组: 2 5 9 10 48 95 154 31 59 69

  10. * */

  11. public static boolean suShu(int i)//定义一个判断是否为素数的方法。
  12. {
  13. int count = 0;
  14. if (i == 1)
  15. return false;
  16. for(int x=1;x<=i;x++)
  17. {
  18. if((i%x)==0)
  19. count++;
  20. }
  21. if(count>2)
  22. return false;
  23. else
  24. return true;

  25. }

  26. public static void print()
  27. {
  28. int []i = {2,5,9,10,48,95,154,31,59,69};//来个int数组存需要处理的数
  29. System.out.print("数组改变前");
  30. for(int x=0;x<i.length-1;x++)
  31. {
  32. System.out.print(i[x]+" "+"\t");
  33. }
  34. System.out.println(i[i.length-1]);

  35. int []arr = new int[i.length];//来个新数组存素数变0后的数组。
  36. for(int x=0;x<i.length;x++)//遍历数组并打印。
  37. {

  38. if(suShu(i[x]))//调用suShu方法判断原数组的数是否为素数
  39. arr[x] = 0;
  40. else
  41. arr[x]=i[x];
  42. }
  43. System.out.print("数组改变后");
  44. for(int x=0;x<arr.length-1;x++)
  45. {
  46. System.out.print(arr[x]+" "+"\t");
  47. }
  48. System.out.println(arr[arr.length-1]);


  49. System.out.println("输出数组");
  50. for(int x=0;x<arr.length;x++)
  51. {
  52. for(int y=0;y<=x;y++)
  53. {

  54. if(x==y)//为了打印阶梯型。
  55. System.out.println(arr[x]+"\t");
  56. else
  57. System.out.print(" ");
  58. }
  59. }
  60. }
  61. }
复制代码
加了制表符给改好看点了。
回复 使用道具 举报
王靖远 发表于 2013-6-21 15:48
加了制表符给改好看点了。

哦哦 前面都是按顺序排的,忘掉看需求要排序了。等我改下
回复 使用道具 举报
王靖远 发表于 2013-6-21 15:48
加了制表符给改好看点了。
  1. import java.util.*;
  2. class ZhuanFen
  3. {
  4. public static void main(String[] args)
  5. {
  6. print();
  7. }

  8. /*
  9. * 1.将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  10. 数组: 2 5 9 10 48 95 154 31 59 69

  11. * */

  12. public static boolean suShu(int i)//定义一个判断是否为素数的方法。
  13. {
  14. int count = 0;
  15. if (i == 1)
  16. return false;
  17. for(int x=1;x<=i;x++)
  18. {
  19. if((i%x)==0)
  20. count++;
  21. }
  22. if(count>2)
  23. return false;
  24. else
  25. return true;

  26. }

  27. public static void print()
  28. {
  29. int []i = {2,5,9,10,48,95,154,31,59,69};//来个int数组存需要处理的数
  30. System.out.print("数组改变前");
  31. for(int x=0;x<i.length-1;x++)
  32. {
  33. System.out.print(i[x]+" "+"\t");
  34. }
  35. System.out.println(i[i.length-1]);
  36. Arrays.sort(i);

  37. int []arr = new int[i.length];//来个新数组存素数变0后的数组。
  38. for(int x=0;x<i.length;x++)//遍历数组并打印。
  39. {

  40. if(suShu(i[x]))//调用suShu方法判断原数组的数是否为素数
  41. arr[x] = 0;
  42. else
  43. arr[x]=i[x];
  44. }
  45. System.out.print("数组改变后");
  46. for(int x=0;x<arr.length-1;x++)
  47. {
  48. System.out.print(arr[x]+" "+"\t");
  49. }
  50. System.out.println(arr[arr.length-1]);


  51. System.out.println("输出数组");
  52. for(int x=0;x<arr.length;x++)
  53. {
  54. for(int y=0;y<=x;y++)
  55. {

  56. if(x==y)//为了打印阶梯型。
  57. System.out.println(arr[x]+"\t");
  58. else
  59. System.out.print(" ");
  60. }
  61. }
  62. }
  63. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1 重复修改代码,值得鼓励,话说你已经重复发.

查看全部评分

回复 使用道具 举报
这个题也忒难了,大家都是新手啊!!!这个代码写了我3个小时,里面有很多注释的地方是重复重复试验的结果,还有写地方还是懵懵懂懂,不过还是按照楼主的要求实现了功能,我这个代码是裹脚布又长又臭,不过很适合向我这样的新手,就是把这个需求简单话,然后按照自己的意思一条一条写代码..斑竹给分啊!!= =!!
  1. /*
  2. 需求 :将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  3.             数组:  2   5    9    10   48     95   154     31  59    69
  4. 思路:首先使用遍历数组,然后使用冒泡排序按从小到大的顺序排列,
  5.            然后对数组各个元素进行判断,如果(这个数)%(这个数-1)==0,那么就不是素数,
  6.            最后使用for循环输出数字
  7. 步骤:
  8.     1,首先定义一个数组,使用for循环遍历数组,冒泡排序使它从小到大排序
  9.     2,然后找出元素中的素数,赋为0
  10.     3,然后使用for循环按照阶梯状打印数组
  11. */
  12. class Test12{
  13.        
  14.         public static void main(String[] args) {
  15.                
  16.         int []  arr = {2,5,9,10,48,95,154,31,59,69};
  17.         show(arr);//遍历数组的函数
  18.         sort(arr);//排列数组的方式,从小到大
  19.         prime(arr);//将数组中为素数的元素改变为0,打印输出
  20.         ladder(arr);//按照需求将改变后的数组元素呈梯形状打印出来
  21. }
  22.         //这是一个罗列数组的函数show
  23.         public static void show(int arr[]){
  24.                 System.out.println("遍历原数组的各个元素");
  25.                 for (int i = 0; i < arr.length; i++) {//i为小脚标,i<数组的长度,i每次执行完自加一次
  26.                         System.out.print(arr[i]+" ");//打印元素
  27.                 }
  28.                 System.out.println();//这个是为了调用函数的时候取到换行的作用,后面的方法中结尾都有一个换行的打印输出
  29.         }
  30.         //冒泡排序从小到大的排序sort
  31.         public static void sort(int arr[]){
  32.                 System.out.println("从小到大排序的各个元素");
  33.                 for (int i = 0; i < arr.length; i++) {//遍历数组元素
  34.                         for (int j = 0; j < arr.length-i-1; j++) {//确定比较的次数,因为每次比较都会确定最小值所以-i-1               
  35.                                 if (arr[j]>arr[j+1]) {//arr[j]>arr[j+1]的时候我们要进行换位
  36.                                         int temp = arr[j];//用第三方变量temp来实现换位
  37.                                         arr[j]=arr[j+1];
  38.                                         arr[j+1]=temp;       
  39.                                 }
  40.                         }
  41.                         System.out.print(arr[i]+" ");//输出比较后的数组
  42.                 }
  43.                 System.out.println();//这个是为了调用函数的时候取到换行的作用,后面的方法中结尾都有一个换行的打印输出
  44.         }
  45.         public static void prime(int arr[]){
  46.                 System.out.println("将数组中是素数的元素定义为0,并打印出改变后的数组");
  47.                 loop://loop是个标记
  48.                 for (int i = 0; i < arr.length; i++) {//首先遍历数组元素,就相当于取得每个元素的值
  49.                         for (int j = 2;j<arr[i]; j++) {//因为我们是要素数所以我们就让(arr里面的元素)%(这个元素-1的值),这里我们遍历这个元素-1的值.
  50.                                 if (arr[i]%j==0) {//设置判断语句如果arr[i]这个元素%这个元素的值-1(即j)等于0,我们就继续回到循环
  51.                                 System.out.print(" " + arr[i]);//打印数组的元素,为了保证让素数变成0之后能打印出所有的元素,即 0 0 9 10 0 48 0 69 95 154这种样式
  52.                                         continue loop;//if判断flase的时候跳出当前循环  
  53.                                 }
  54.                                 //System.out.print(" " + arr[i]);  
  55.                         }
  56.                         //System.out.print(" " + arr[i]);
  57.                         arr[i]=0;//将这个元素赋值为0
  58.                     System.out.print(" " + arr[i]);//打印元素
  59.                         //System.out.println();
  60.                 }
  61.                
  62.                 System.out.println();//我起到了可爱的换行作用,你们可以忽略我
  63.         //ladder(arr);
  64.         }
  65.         public static void ladder(int arr[]){
  66.                 //prime(arr);
  67.                 System.out.println("将改变后的数组元素按照梯形状打印 ");
  68.                 for (int i = 0; i < arr.length; i++) {//控制行数,即长度
  69.                         for (int j = 0; j < i; j++) {//控制列数,即高度
  70.                                 System.out.print(" ");
  71.                         }
  72.                         System.out.println(arr[i]);
  73.                         //System.out.println();
  74.                 }
  75.        
  76.         }
  77.        
  78. }
复制代码
回复 使用道具 举报
遍历原数组的各个元素
2 5 9 10 48 95 154 31 59 69
从小到大排序的各个元素
2 5 9 10 31 48 59 69 95 154
将数组中是素数的元素定义为0,并打印出改变后的数组
0 0 9 10 0 48 0 69 95 154
将改变后的数组元素按照梯形状打印
0
0
  9
   10
    0
     48
      0
       69
        95
         154

运行结果!!!!




评分

参与人数 1技术分 +5 收起 理由
夜默 + 5 黑马学员,需要你这种迎难而上的精神....

查看全部评分

回复 使用道具 举报
本帖子需要验证码才可查看,请输入验证码:heima 即可正常访问  
回复 使用道具 举报
回复 使用道具 举报

截图的!

QQ拼音截图未命名.png (9.59 KB, 下载次数: 0)

QQ拼音截图未命名.png
回复 使用道具 举报
第一题:
import java.util.*;
public class ArrayDemo{
public static void main(String args[]){
  int temp[] = {2,5,9,10,48,95,154,31,59,69} ;  //定义整数数组
  System.out.print("数组改变前:") ;         
  fun(temp) ;           //输出改变前的数组
  Arrays.sort(temp);         //升序排列数组
  System.out.print("数组改变后:") ;            
  fun(temp) ;           //输出改变后的数组
  for(int i = 0 ;i<temp.length ; i++){          //判断是否是素数,如果是,则变为0
   if(temp<=2){
    temp=0 ;
   }else{for(int j=2 ; j< temp ; j++){
      if(temp%j==0){
      break ;
      }else{
      temp=0 ;
      }
         }
   }
  }
  System.out.print("将数组中的素数变为0:");
  fun(temp) ;                                   //输出判断后的数组
  for(int i=0 ; i<temp.length ; i++){           //按阶梯状输出
   for(int j= 0 ; j<= i ; j++){        
    System.out.print(" ") ;
   }
   System.out.println(temp) ;
  }
}
public static void fun(int temp[]){      //定义一个打印数组的方法
  for(int i=0;i<temp.length;i++){
   System.out.print(temp+"\t") ;
  }
  System.out.println();                         //输出完后换行
}
}

回复 使用道具 举报
排序的问题
  1. public class Test5 {

  2.         public static void main(String[] args) {
  3.                 int []arr={2,5,9,10 ,48 ,95 ,154,31 ,59 , 69};  //定义一个数组
  4.                 for(int i=0;i<arr.length-1;i++){               //  用双层循环对数组排序
  5.                         for(int j=i;j<arr.length-1;j++){
  6.                                 if(arr[j]>arr[j+1]){          //判断是否为最大数
  7.                                         int temp=arr[j];
  8.                                         arr[j]=arr[j+1];
  9.                                         arr[j+1]=temp;
  10.                                 }
  11.                         }
  12.                 }
  13.                 for(int i=0;i<arr.length;i++){  //打印排序后的数组
  14.                         System.out.print(arr[i]+"\t");
  15.                 }

  16.         }

  17. }
  18. [img]D:\\jad\\answer.jpg[/img]
复制代码
回复 使用道具 举报
  1. /*
  2. * 需求:打印输出一百以内的素数的累加和
  3. 思路:首先按照素数的特点,打印素数然后相加求和
  4. 步骤:
  5. 1,遍历1-100的数
  6. 2,判断这个数是不是素数,是打印出来,用sum记录 sum+i的值
  7. 3,将这些素数相加求和
  8. * */
  9. public class Test13 {

  10. /**
  11. * @param args
  12. */
  13. public static void main(String[] args) {
  14. // TODO Auto-generated method stub
  15. int sum=0;//定义个sum来记录素数的值
  16. loop://标记点
  17. for (int i = 2; i<=100; i++) {//遍历1-100之间的数.
  18. for (int j = 2; j <i; j++) {//每个数和这个数-1进行比较
  19. if (i%j==0) {//判断i%j是否为0,如果为0跳重新执行一次函数
  20. continue loop;
  21. }
  22. }
  23. System.out.print(i+" ");//打印素数
  24. sum+=i;//用sum记录sum+i的值
  25. }
  26. System.out.println();
  27. System.out.println("sum="+sum);
  28. }
  29. }
  30. 运行结果:<IMG border=0 alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=21509&size=300x300&key=13c83738012d6416&nocache=yes&type=fixnone" aid="attachimg_21509">
复制代码

12.jpg (20.12 KB, 下载次数: 0)

12.jpg

点评

值得鼓励,不过封顶五分..  发表于 2013-6-21 18:27
回复 使用道具 举报
package com.itheima;

import java.util.Arrays;

public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub

                //定义一个int类型数组进行保存这些数
                int []number={2,5,9,10,48,95,154,31,59,69};
                //用Arrays.sort排序函数进行排序
                Arrays.sort(number);
               
                //打印排好序的数字
                for(int i=0;i<number.length;i++){
                        System.out.print(" "+number[i]);
                        if(number[i]%2==0){
                                number[i]=0;
                                continue;
                        }
                }System.out.println();
               
                //用嵌套循环进行控制格式打印
                for(int i=0;i<number.length;i++){
                        //每行缩进的格式控制
                        for(int j=0;j<i;j++){
                                 System.out.print(" ");
                        }
                        System.out.print(number[i]);
                        System.out.print("\n");
                }
               
               
        }

}


请您检查验收,辛苦了。{:soso_e100:}

点评

结果 注释...  发表于 2013-6-21 18:28
回复 使用道具 举报
package com.itheima;
import java.util.Arrays;
public class Test {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  //定义一个int类型数组进行保存这些数
  int []number={2,5,9,10,48,95,154,31,59,69};
  //用Arrays.sort排序函数进行排序
  Arrays.sort(number);
  
  //打印排好序的数字
  for(int i=0;i<number.length;i++){
   System.out.print(" "+number[i]);
   if(number[i]%2==0){
    number[i]=0;
    continue;
   }
  }System.out.println();
  
  //用嵌套循环进行控制格式打印
  for(int i=0;i<number.length;i++){
   //每行缩进的格式控制
   for(int j=0;j<i;j++){
//每行前的空格
     System.out.print(" ");
   }
//输出数组元素   
System.out.print(number[i]);
//控制换行
   System.out.print("\n");
  }
  
  
}
}


QQ截图20130621182751.png (7.72 KB, 下载次数: 0)

QQ截图20130621182751.png

点评

素数判断还是不对  发表于 2013-6-21 18:39
回复 使用道具 举报
最后一个杨辉三角的,在网络上看挺多的代码,不过涉及到二维数组,这个还不是很理解,如果群主有人写出来了,麻烦发一份给我!!
回复 使用道具 举报
  1. /*
  2. 类中有四个函数
  3. 主函数main:负责主程序运行,调用所需功能
  4. void PrintArray(int[] arr):对数组排序且将素数改为0
  5. boolean flag(int n):标记,判断是否是素数
  6. void Yanghui(int n):反向打印杨辉三角
  7. */
  8. import java.util.*;
  9. class YangHui
  10. {
  11. public static void main(String[] args)
  12. {

  13. int[] arr={2,5,9,10,48,95,154,31,59,69};
  14. System.out.println("第1题,打印数组");
  15. PrintArray(arr);
  16. System.out.print("第2题,请输入一个自然数N:");
  17. Scanner in=new Scanner(System.in);
  18. Yanghui(in.nextInt());

  19. }
  20. public static void PrintArray(int[] arr)
  21. {
  22. System.out.print("数组改变前");
  23. //for循环遍历数组
  24. for(int x=0;x<arr.length;x++)
  25. {
  26. System.out.print(arr[x]+" ");
  27. }
  28. //将数组由小到大进行排序
  29. Arrays.sort(arr);
  30. //换行
  31. System.out.println();
  32. System.out.println("数组排序后"+Arrays.toString(arr));
  33. System.out.print("数组改变后");
  34. //对排序后的数组进行遍历
  35. for(int x=0;x<arr.length;x++)
  36. {
  37. //是素数就改为0
  38. if (flag(arr[x]))
  39. arr[x]=0;
  40. System.out.print(arr[x]+" ");
  41. }
  42. System.out.println();
  43. System.out.println("输出数组");
  44. //阶梯状输出改变后的数组
  45. for (int x=0;x<arr.length;x++ )
  46. {
  47. //控制空格数
  48. for (int y=0;y<x;y++)
  49. {
  50. System.out.print(" ");
  51. }
  52. System.out.println(arr[x]);
  53. }
  54. }
  55. //如果一个数能被1和自身以外的数整除就不是素数
  56. public static boolean flag(int n)
  57. {
  58. for(int i=2;i<=n/2;i++)
  59. {
  60. if(n%i==0)
  61. return false;
  62. }
  63. return true;
  64. }

  65. public static void Yanghui(int n)
  66. {
  67. int arr[][] = new int[n][n];
  68. //每一行的首项和尾项为1
  69. for (int i = 0; i < n; i++)
  70. {
  71. arr[i][0] = 1;
  72. arr[i][i] = 1;
  73. }
  74. //从第二行开始遍历行,第j项的值是前一行的两数之和
  75. for (int i = 2; i < n; i++)
  76. {
  77. //从第二列开始遍历列
  78. for (int j = 1; j < n; j++)
  79. {
  80. arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
  81. }
  82. }
  83. //反向打印杨辉三角
  84. for (int i=n-1; i>=0; i--)
  85. {
  86. //控制每行的空格数
  87. for (int x=0;x<5-i;x++)
  88. {
  89. System.out.print(" ");
  90. }
  91. //打印二维数据的具体数值
  92. for (int j=0; j<=i; j++)
  93. {
  94. System.out.print(arr[i][j] + " ");
  95. }
  96. //每行结束后换行
  97. System.out.println();
  98. }
  99. }
  100. }
复制代码

test.jpg (37.21 KB, 下载次数: 0)

运行结果

运行结果

评分

参与人数 1技术分 +5 收起 理由
夜默 + 5 值得表扬...

查看全部评分

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