- /*
- ********************
- 项目名:黑马版主题解
- 作者:yooc
- 满分13分吗?我来冲刺满分:) 早上6点开始除去吃饭时间用时2小时40分钟
- 本代码可直接复制执行 方便版主检测!
- ********************
- */
- import java.util.*;
- class HeimaTest
- {
- //主函数
- public static void main(String[] args)
- {
- sop("***********题目1**********");
- timu1(); //执行题目1
- sop("***********题目2**********");
- timu2(); //执行题目2
- sop("***********题目3**********");
- timu3(); //执行题目3
- }
- //功能函数 打印到控制台
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- //********题目1 求素数********
- public static void timu1()
- {
- int N = 100; //范围
- int i, j,temp=0;
- sop("100以内的素数有:");
- for (i = 2; i <= 100; i++) //求素数开始
- {
- for (j = 2; j < i; j++)
- if (i % j== 0) //不满足素数条件直接跳出内循环
- break;
- if(j==i) //内循环没有中途跳出 则找到素数一枚
- {
- System.out.print(i+" "); //输出单个素数
- temp+=i; //记录累加和
- }
- }
- sop("\n累加和为:"+temp); //输出结果
- }
- //********题目1结束********
- /*
- ********题目2********
- 将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
- 数组: 2 5 9 10 48 95 154 31 59 69
- */
- public static void timu2()
- {
- int i,j;
- int[] a = {2,5,9,10,48,95,154,31,59,69};
- Arrays.sort(a); //将数组排序
- sop("数组排序后:");
- sop(Arrays.toString(a));
- for (i=0;i<a.length;i++)
- {
- for (j = 2; j < a[i]; j++) //判断数组a中有无素数
- if (i % j== 0) //不满足素数条件直接跳出内循环
- break;
- if(j==a[i]) //内循环没有中途跳出 则找到素数一枚
- {
- a[i]=0; //将其置0
- }
-
- }
- sop("数组改变后:");
- sop(Arrays.toString(a));
- //按题目要求将其输出
- for (int m=0;m<a.length ;m++ )
- {
- for (int n=0;n<m ;n++ )
- {
- System.out.print(" ");
- }
- sop(a[m]);
- }
- }
- //******题目2结束********
- /*
- ********题目3********
- 手动输入一个自然数N,反向打印N行杨辉三角。
- */
- public static void timu3()
- {
- StringBuilder sb = new StringBuilder(); //创建字符串缓冲 以字符为单位存入数据
- List<String> al = new ArrayList<String>(); //创建list集合 以行为单位存入数据 (反转用)
- try
- {
- //手动输入一个自然数N,反向打印N行杨辉三角。
- Scanner ss=new Scanner(System.in);
- System.out.print("请输入一个数(建议不大于10):");
- int n=(int)ss.nextInt()+1;
-
- //根据 mat[i][j] = mat[i - 1][j - 1] + mat[i - 1][j] 计算杨辉三角
- int mat[][] = new int[n][];
- int i, j;
- for (i = 0; i < n; i++)
- {
- mat[i] = new int[i + 1];
- mat[i][i] = 1; //最右边全为1
- for (j = 1; j < i; j++)
- {
- mat[i][j] = mat[i - 1][j - 1] + mat[i - 1][j];
- }
- }
- for (i = 0; i < mat.length; i++)
- {
- for (j = 1; j < n - i; j++)
- {
- sb.append(" "); //字符缓冲器存入 循环次数为每行前边的空格数
- }
- for (j = 1; j < mat[i].length; j++)
- {
- if (mat[i][j]!=0)
- {
- sb.append(" " + mat[i][j]); //字符缓冲器存入主要数据
- }
- }
- al.add(sb.toString()); //字符缓冲器所有数据存入 List集合
- sb.delete(0,sb.length());//字符缓冲器清空 以便继续循环
- }
- //逆序输出List集合所有元素
- for (int k = al.size()-1;k>0 ;k-- )
- {
- System.out.println(al.get(k));
- }
- }
-
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- //******题目3结束********
- }
复制代码 贴出来排版没有了 郁闷
结果如下:
输入4
输入7
|