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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. ********************
  3. 项目名:黑马版主题解
  4. 作者:yooc

  5. 满分13分吗?我来冲刺满分:)  早上6点开始除去吃饭时间用时2小时40分钟

  6. 本代码可直接复制执行  方便版主检测!

  7. ********************
  8. */

  9. import java.util.*;

  10. class  HeimaTest
  11. {

  12.         //主函数
  13.         public static void main(String[] args)
  14.         {
  15.                 sop("***********题目1**********");
  16.                 timu1();        //执行题目1
  17.                 sop("***********题目2**********");
  18.                 timu2();        //执行题目2
  19.                 sop("***********题目3**********");
  20.                 timu3();        //执行题目3

  21.         }

  22.         //功能函数 打印到控制台
  23.         public static void sop(Object obj)  
  24.         {
  25.                 System.out.println(obj);
  26.         }

  27.         //********题目1 求素数********
  28.         public static void timu1()         
  29.         {
  30.                 int N = 100;                         //范围
  31.                 int i, j,temp=0;
  32.                 sop("100以内的素数有:");
  33.                 for (i = 2; i <= 100; i++)   //求素数开始
  34.                 {
  35.                         for (j = 2; j < i; j++)   
  36.                         if (i % j== 0)         //不满足素数条件直接跳出内循环
  37.                                 break;

  38.                         if(j==i)          //内循环没有中途跳出 则找到素数一枚
  39.                         {
  40.                                 System.out.print(i+" "); //输出单个素数
  41.                                 temp+=i;     //记录累加和
  42.                         }

  43.                 }
  44.                 sop("\n累加和为:"+temp);  //输出结果
  45.         }
  46.         //********题目1结束********



  47.         /*
  48.         ********题目2********
  49.         将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  50.         数组:  2   5    9    10   48     95   154     31  59    69
  51.         */
  52.         public static void timu2()  
  53.         {
  54.                 int i,j;
  55.                 int[] a = {2,5,9,10,48,95,154,31,59,69};
  56.                 Arrays.sort(a);      //将数组排序

  57.                 sop("数组排序后:");
  58.                 sop(Arrays.toString(a));

  59.                 for (i=0;i<a.length;i++)
  60.                 {
  61.                         for (j = 2; j < a[i]; j++)  //判断数组a中有无素数
  62.                         if (i % j== 0)         //不满足素数条件直接跳出内循环
  63.                                 break;

  64.                         if(j==a[i])          //内循环没有中途跳出 则找到素数一枚
  65.                         {
  66.                                 a[i]=0;        //将其置0
  67.                         }
  68.                        
  69.                 }
  70.                 sop("数组改变后:");
  71.                 sop(Arrays.toString(a));

  72.                 //按题目要求将其输出
  73.                 for (int m=0;m<a.length ;m++ )
  74.                 {
  75.                         for (int n=0;n<m ;n++ )
  76.                         {
  77.                                 System.out.print(" ");
  78.                         }
  79.                         sop(a[m]);
  80.                 }

  81.         }
  82.         //******题目2结束********


  83.         /*
  84.         ********题目3********
  85.         手动输入一个自然数N,反向打印N行杨辉三角。       
  86.         */       
  87.         public static void timu3()
  88.         {
  89.                 StringBuilder sb = new StringBuilder();  //创建字符串缓冲 以字符为单位存入数据
  90.                 List<String> al = new ArrayList<String>();               //创建list集合 以行为单位存入数据  (反转用)

  91.                 try
  92.                 {
  93.                         //手动输入一个自然数N,反向打印N行杨辉三角。       
  94.                         Scanner ss=new Scanner(System.in);
  95.                         System.out.print("请输入一个数(建议不大于10):");
  96.                         int n=(int)ss.nextInt()+1;
  97.                        
  98.                         //根据 mat[i][j] = mat[i - 1][j - 1] + mat[i - 1][j] 计算杨辉三角         
  99.                         int mat[][] = new int[n][];
  100.                         int i, j;
  101.                         for (i = 0; i < n; i++)
  102.                         {
  103.                                 mat[i] = new int[i + 1];
  104.                                 mat[i][i] = 1;        //最右边全为1
  105.                                 for (j = 1; j < i; j++)
  106.                                 {
  107.                                         mat[i][j] = mat[i - 1][j - 1] + mat[i - 1][j];
  108.                                 }

  109.                         }
  110.                         for (i = 0; i < mat.length; i++)
  111.                         {
  112.                                 for (j = 1; j < n - i; j++)
  113.                                 {
  114.                                         sb.append(" ");        //字符缓冲器存入 循环次数为每行前边的空格数
  115.                                 }

  116.                                 for (j = 1; j < mat[i].length; j++)
  117.                                 {
  118.                                         if (mat[i][j]!=0)
  119.                                         {
  120.                                                 sb.append(" " + mat[i][j]);  //字符缓冲器存入主要数据
  121.                                         }

  122.                                 }
  123.                                 al.add(sb.toString());   //字符缓冲器所有数据存入 List集合
  124.                                 sb.delete(0,sb.length());//字符缓冲器清空 以便继续循环
  125.                         }

  126.                         //逆序输出List集合所有元素
  127.                         for (int k = al.size()-1;k>0 ;k-- )
  128.                         {
  129.                                 System.out.println(al.get(k));
  130.                         }

  131.                 }

  132.                
  133.                 catch(Exception e)
  134.                 {
  135.                         e.printStackTrace();
  136.                 }

  137.         }
  138.         //******题目3结束********





  139. }
复制代码
贴出来排版没有了  郁闷
结果如下:
输入4


输入7


评分

参与人数 1技术分 +5 收起 理由
夜默 + 5 封顶5分,不然我搞俩次活动,你分就够了....

查看全部评分

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