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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  1. /**
  2. *题1
  3. */
  4. public static void main(String args[]) {
  5.                 //素数指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
  6.                
  7.                
  8.                 //创建一个素数的数组
  9.                 ArrayList<Integer> intList = new ArrayList();

  10.                 int num = 2;
  11.                 boolean isSuShu = true;
  12.                 //素数累加值
  13.                 int count = 0;
  14.                 //循环100以下的数,判断哪个是素数
  15.                 while (num <= 100) {
  16.                         for (int start = 1; start <= num; start++) {
  17.                                 //判断当前数是否为素数
  18.                                 if (num % start == 0 && start != 1 && num != start) {
  19.                                         isSuShu = false;
  20.                                         break;
  21.                                 }
  22.                         }
  23.                         //如果是素数,添加到集合中
  24.                         if (isSuShu) {
  25.                                 intList.add(num);
  26.                         }
  27.                         num++;
  28.                         isSuShu = true;
  29.                 }

  30.                 //对集合中素数遍历,得到总和
  31.                 for (int i = 0; i < intList.size(); i++) {
  32.                         count += intList.get(i);
  33.                 }
  34.                 System.out.println(count);
  35.         }


  36. [color=Red]最后的结果为:1060[/color]
复制代码
最后的结果为为:1060

评分

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

查看全部评分

回复 使用道具 举报
  1. //第一题:打印输出一百以内的素数的累加和...
  2. public class SuShu {
  3.         //定义判断数字是否是素数的方法
  4.         public static boolean judge(int n){
  5.                 if(n<2)                       //小于2的数都不是素数
  6.                         return false;
  7.                 if(n==2)                                          //对2进行单独判断
  8.                         return true;
  9.                 for(int i=2;i<=n/2+1;i++){          //判断大于2的数是否是素数
  10.                         if(n%i==0)
  11.                                 return false;
  12.                 }
  13.                 return true;
  14.         }
  15.         public static void main(String[] args){
  16.                 int s=0;                                        //用于存放最后累加的结果
  17.                 for(int i=0;i<=100;i++){    //通过调用judge()方法判断一百以内的素数
  18.                         if(judge(i))
  19.                                 s+=i;
  20.                 }
  21.                 System.out.println("100以内的素数和是..."+s);//打印结果
  22.         }
  23. }
复制代码
  1. //第三题手动输入一个自然数N,反向打印N行杨辉三角。
  2. import java.util.Scanner;
  3. public class Exercise3 {
  4.         public static void yangHui(int n){
  5.                 int[][] t=new int[n][n];//初始化一个二维数组用来存放杨辉三角
  6.                 //给杨辉三角的两条边赋值为1
  7.                 for(int i=0;i<n;i++){
  8.                         t[i][0]=1;
  9.                         t[i][i]=1;
  10.                 }
  11.                 //给剩余部分赋值
  12.                 for(int i=2;i<n;i++){
  13.                         for(int x=1;x<i;x++){
  14.                                 t[i][x]=t[i-1][x-1]+t[i-1][x];
  15.                         }
  16.                 }
  17.                 //倒立打印出杨辉三角
  18.                 for(int i=t.length-1;i>=0;i--){
  19.                         for(int x=t.length-1;x>=0;x--){
  20.                                 int s=t[i][x];
  21.                                 if(s==0){
  22.                                         System.out.print(" ");
  23.                                         continue;
  24.                                 }
  25.                                 System.out.print(s+" ");
  26.                         }
  27.                         System.out.println();
  28.                 }
  29.         }
  30.         public static void main(String[] args){
  31.                 Scanner sc=new Scanner(System.in);
  32.                 System.out.print("请输入需要打印的行数:");
  33.                 int i=sc.nextInt();
  34.                 yangHui(i);
  35.         }
  36. }
复制代码


回复 使用道具 举报
为什么把我的输出结果和第二题给吞了啊
回复 使用道具 举报
重新发一次
  1. //第一题:打印输出一百以内的素数的累加和...
  2. public class SuShu {
  3.         //定义判断数字是否是素数的方法
  4.         public static boolean judge(int n){
  5.                 if(n<2)                       //小于2的数都不是素数
  6.                         return false;
  7.                 if(n==2)                                          //对2进行单独判断
  8.                         return true;
  9.                 for(int i=2;i<=n/2+1;i++){          //判断大于2的数是否是素数
  10.                         if(n%i==0)
  11.                                 return false;
  12.                 }
  13.                 return true;
  14.         }
  15.         public static void main(String[] args){
  16.                 int s=0;                                        //用于存放最后累加的结果
  17.                 for(int i=0;i<=100;i++){    //通过调用judge()方法判断一百以内的素数
  18.                         if(judge(i))
  19.                                 s+=i;
  20.                 }
  21.                 System.out.println("100以内的素数和是..."+s);//打印结果
  22.         }
  23. }
  24. //   100以内的素数和是...1060
复制代码
  1. /*第二题:将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  2.     数组:  2 5 9 10 48 95 154 31 59 69
  3. */
  4. public class Exercise2 {
  5.         //定义替换数组元素的方法,通过使用第一题的方法
  6.         public static int[] replace(int[] n){
  7.                 for(int i=0;i<n.length;i++){
  8.                         if(SuShu.judge(n[i]))
  9.                                 n[i]=0;
  10.                 }
  11.                 return n;
  12.         }
  13.         public static void main(String[] args){
  14.                 int[] t={2,5,9,10,48,95,154,31,59,69};
  15.                 System.out.print("数组改变前:");
  16.                 for(int i:t)
  17.                         System.out.print(i+" ");//打印改变前的数组
  18.                
  19.                 System.out.println();
  20.                 System.out.print("数组改变后:");
  21.                 t=replace(t);                               
  22.                 for(int i:t)
  23.                         System.out.print(i+" ");//调用方法改变数组并打印
  24.                 System.out.println();
  25.                
  26.                 for(int i=0;i<t.length;i++){//梯形打印数组中的元素,外循环控制行数,内循环控制空格数量
  27.                         for(int x=0;x<i;x++)
  28.                                 System.out.print(" ");
  29.                         System.out.println(t[i]);
  30.                 }
  31.         }
  32. }
  33. /*
  34. 数组改变前:2 5 9 10 48 95 154 31 59 69
  35. 数组改变后:0 0 9 10 48 95 154 0 0 69
  36. 0
  37. 0
  38.   9
  39.    10
  40.     48
  41.      95
  42.       154
  43.        0
  44.         0
  45.          69
  46. */
复制代码
  1. //第三题手动输入一个自然数N,反向打印N行杨辉三角。
  2. import java.util.Scanner;
  3. public class Exercise3 {
  4.         public static void yangHui(int n){
  5.                 int[][] t=new int[n][n];//初始化一个二维数组用来存放杨辉三角
  6.                 //给杨辉三角的两条边赋值为1
  7.                 for(int i=0;i<n;i++){
  8.                         t[i][0]=1;
  9.                         t[i][i]=1;
  10.                 }
  11.                 //给剩余部分赋值
  12.                 for(int i=2;i<n;i++){
  13.                         for(int x=1;x<i;x++){
  14.                                 t[i][x]=t[i-1][x-1]+t[i-1][x];
  15.                         }
  16.                 }
  17.                 //倒立打印出杨辉三角
  18.                 for(int i=t.length-1;i>=0;i--){
  19.                         for(int x=t.length-1;x>=0;x--){
  20.                                 int s=t[i][x];
  21.                                 if(s==0){
  22.                                         System.out.print(" ");
  23.                                         continue;
  24.                                 }
  25.                                 System.out.print(s+" ");
  26.                         }
  27.                         System.out.println();
  28.                 }
  29.         }
  30.         public static void main(String[] args){
  31.                 Scanner sc=new Scanner(System.in);
  32.                 System.out.print("请输入需要打印的行数:");
  33.                 int i=sc.nextInt();
  34.                 yangHui(i);
  35.         }
  36. }
  37. /*
  38. 请输入需要打印的行数:5
  39. 1 4 6 4 1
  40. 1 3 3 1
  41.   1 2 1
  42.    1 1
  43.     1
  44. */
复制代码

评分

参与人数 1技术分 +4 收起 理由
夜默 + 4 2题说好的排序呢...

查看全部评分

回复 使用道具 举报
  1. //输出100以内的素数的累加的和
  2. class Test1
  3. {
  4. public static void main(String[] args)
  5. {
  6. int i,j,sum=0;//定义三个整型变量
  7. //0和1不是素数,从2开始循环
  8. for(i=2;i<=100;i++)
  9. {
  10. for(j=2;j<=i;j++)
  11. {
  12. //如果能被本身和1以外的数整除不是素数,不是素数结束循环
  13. if(i%j==0)
  14. break;
  15. }
  16. if(j>=i)//判断j是否大于等于i
  17. {
  18. //累加求和
  19. sum=sum+j;
  20. }
  21. }
  22. //输出素数的和
  23. System.out.println("所有素数的和为:"+sum);
  24. }
  25. }
复制代码
  1. //2.将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  2. // 数组: 2 5 9 10 48 95 154 31 59 69
  3. class Test2
  4. {
  5. public static void main(String[] args)
  6. {
  7. int a[]={2,5,9,10,48,95,154,31,59,69};
  8. int i,j;
  9. //冒泡排序进行排序
  10. for( i=0;i<a.length;i++)
  11. {
  12. for( j=i+1;j<a.length;j++)
  13. {
  14. if (a[i]>a[j])
  15. {
  16. int temp=a[i];
  17. a[i]=a[j];
  18. a[j]=temp;
  19. }
  20. }
  21. }
  22. System.out.print("数组改变前:");
  23. //遍历输出排序好的数组
  24. for(int k:a)
  25. {
  26. System.out.print(k+" ");
  27. }
  28. System.out.println();
  29. System.out.print("数组改变后:");
  30. for( i=0;i<a.length;i++)//循环遍历数组a
  31. {
  32. for(j=2;j<a[i];j++)//将小于a[i]的数分别与a[i]比较
  33. {
  34. if(a[i]%j==0)//能被整除则不是素数
  35. break;
  36. }
  37. if(j>=a[i])
  38. {
  39. System.out.print(a[i]+" ");
  40. }

  41. }
  42. System.out.println();
  43. System.out.print("输出数组:");
  44. System.out.println();
  45. for( i=0;i<a.length;i++)//循环遍历数组a
  46. {
  47. for(j=2;j<a[i];j++)//将小于a[i]的数分别与a[i]比较
  48. {
  49. if(a[i]%j==0)//能被整除则不是素数
  50. break;
  51. }
  52. if(j>=a[i])
  53. {
  54. for(int n=0;n<i;n++)//循环输出空格
  55. {
  56. System.out.print(" ");
  57. }
  58. System.out.println(a[i]);
  59. }

  60. }


  61. }
  62. }
复制代码


点评

亲 看清题...  发表于 2013-6-23 19:20

评分

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

查看全部评分

回复 使用道具 举报

排序补上。:P
  1. /*第二题:将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  2.     数组:  2 5 9 10 48 95 154 31 59 69
  3. */
  4. public class Exercise2 {
  5.         //定义替换数组元素的方法,通过使用第一题的方法
  6.         public static int[] replace(int[] n){
  7.                 for(int i=0;i<n.length;i++){
  8.                         if(SuShu.judge(n[i]))
  9.                                 n[i]=0;
  10.                 }
  11.                 return n;
  12.         }
  13.         public static void main(String[] args){
  14.                 int[] t={2,5,9,10,48,95,154,31,59,69};
  15.                 System.out.print("数组改变前:");
  16.                 for(int i:t)
  17.                         System.out.print(i+" ");//打印改变前的数组
  18.                 System.out.println();
  19.                 //对数组进行排序
  20.                 int z=0;
  21.                 for(int i=0;i<t.length-1;i++){
  22.                         for(int x=0;x<t.length-1-i;x++){
  23.                                 if(t[x]>t[x+1]){
  24.                                         z=t[x];
  25.                                         t[x]=t[x+1];
  26.                                         t[x+1]=z;
  27.                                 }
  28.                         }
  29.                 }
  30.                 System.out.print("排序之后:");
  31.                 for(int i:t)
  32.                         System.out.print(i+" ");
  33.                
  34.                 System.out.println();
  35.                 System.out.print("数组改变后:");
  36.                 t=replace(t);                               
  37.                 for(int i:t)
  38.                         System.out.print(i+" ");//调用方法改变数组并打印
  39.                 System.out.println();
  40.                
  41.                 for(int i=0;i<t.length;i++){//梯形打印数组中的元素,外循环控制行数,内循环控制空格数量
  42.                         for(int x=0;x<i;x++)
  43.                                 System.out.print(" ");
  44.                         System.out.println(t[i]);
  45.                 }
  46.         }
  47. }
  48. /*
  49. 数组改变前:2 5 9 10 48 95 154 31 59 69
  50. 排序之后:2 5 9 10 31 48 59 69 95 154
  51. 数组改变后:0 0 9 10 0 48 0 69 95 154
  52. 0
  53. 0
  54.   9
  55.    10
  56.     0
  57.      48
  58.       0
  59.        69
  60.         95
  61.          154
  62. */
复制代码
回复 使用道具 举报
第一题:

  1. <P>package com.itheima.bbs;</P>
  2. <P>public class Prime {</P>
  3. <P> /**
  4.   * 1.  打印输出一百以内的素数的累加和...  
  5.   * 素数:就是只能被1和它本身整除的数
  6.   */
  7. public static void main(String[] args) {
  8.   int sum=0;
  9.   //因为1既不是质数,也不是合数,所以从2开始判断
  10.   for(int i=2;i<100;i++){
  11.    if(isPrime(i)){
  12.     sum+=i;
  13.    }
  14.   }
  15.   System.out.println("100以内素数的和:"+sum);
  16.   
  17. }
  18. public static boolean isPrime(int num){
  19.   int n=0;//n表示从1到数本身,能被num整除的个数
  20.   for(int i=1;i<=num;i++){
  21.    if(num%i==0){
  22.     n++;
  23.    }
  24.   }
  25.   if(n==2){//根据质数的定义,只要n等于2,才是素数
  26.    return true;
  27.   }
  28.   return false;
  29. }
  30. }
  31. </P>
复制代码

第二题:
  1. package com.itheima.bbs;

  2. import java.util.Arrays;

  3. public class Seqence {

  4. /**
  5. * 2.将该数组由小到大进行排列,数组中的素数全部赋值为零,并 按阶梯状输出。
  6. * 数组: 2 5 9 10 48 95 154 31 59 69
  7. */
  8. public static void main(String[] args) {
  9. int[] arr=new int[]{2,5,9,10,48,95,154,31,59,69};
  10. Arrays.sort(arr);//利用工具类Arrays对数组排序
  11. System.out.print("数组改变前");
  12. for(int i=0;i<arr.length;i++){
  13. System.out.print(arr[i]+"\t");
  14. if(isPrime(arr[i])){//如果是素数,赋值为0
  15. arr[i]=0;
  16. }
  17. }
  18. System.out.print("\n数组改变后");
  19. for(int i=0;i<arr.length;i++){
  20. System.out.print(arr[i]+"\t");
  21. }

  22. //阶梯输出
  23. System.out.println("\n输出数组");
  24. for(int i=0;i<arr.length;i++){
  25. for(int j=0;j<i;j++){
  26. System.out.print(" ");
  27. }
  28. System.out.println(arr[i]);
  29. }
  30. }
  31. public static boolean isPrime(int num){
  32. int n=0;//n表示从1到数本身,能被num整除的个数
  33. for(int i=1;i<=num;i++){
  34. if(num%i==0){
  35. n++;
  36. }
  37. }
  38. if(n==2){//根据质数的定义,只要n等于2,才是素数
  39. return true;
  40. }
  41. return false;
  42. }
  43. }
复制代码

第三题:
  1. package com.itheima.bbs;

  2. import java.util.Scanner;



  3. public class Triangle {

  4. /**
  5. * 3.手动输入一个自然数N,反向打印N行杨辉三角
  6. * 倒序杨辉三角
  7. */
  8. public static void main(String[] args) throws Exception {
  9. System.out.println("请输入一个自然数:");
  10. Scanner scanner = new Scanner(System.in);
  11. int n = scanner.nextInt();
  12. int mat[][] = new int[n][];//定義二維數組,保存所有要打印的楊輝三角數字
  13. for(int i = 0; i < n; i++) {
  14. mat[i] = new int[i + 1];//第i行是一個i+1的一維數組
  15. mat[i][0] = 1;//每行第一個數字都是0
  16. mat[i][i] = 1;//最後一個數字是1
  17. for (int j = 1; j < i; j++) {//每行數字的賦值
  18. mat[i][j] = mat[i - 1][j - 1] + mat[i - 1][j];
  19. }
  20. }
  21. //反向打印輸出二維數組
  22. for(int i = mat.length-1;i>=0;i--){
  23. for (int j = 0; j < n - i; j++){//打印各行的空格
  24. System.out.print(" ");
  25. }
  26. for (int j = 0; j < mat[i].length; j++){
  27. System.out.print(" " + mat[i][j]);
  28. }
  29. System.out.println();//打印完一行
  30. }


  31. }

  32. }
复制代码




评分

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

查看全部评分

回复 使用道具 举报
wangpan 发表于 2013-6-23 21:03
第一题:
第二题:
第三题:

不知道为什么,前两道题,图没有上去。
第一题:

第二题:

回复 使用道具 举报
wangpan 发表于 2013-6-23 21:07
不知道为什么,前两道题,图没有上去。
第一题:

太不好意思了,第一题的结果图,又没有上去。我直接贴出结果吧:
第一题:
运行结果:
100以内素数的和:1060


搜狗截图13年06月23日2051_1.jpg (5.75 KB, 下载次数: 0)

搜狗截图13年06月23日2051_1.jpg
回复 使用道具 举报
KaiM 初级黑马 2013-6-23 21:54:58
130#
  1. class Sushu
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int count = 1;
  6.                 for (int i = 2; i <= 100; i++)
  7.                 {
  8.                         int j;
  9.                         for (j = 2; j < i; j++)
  10.                         {
  11.                                 if (i % j == 0)
  12.                                 break;
  13.                         }
  14.                         if (j >= i)
  15.                         {
  16.                         System.err.print(i + "\t");
  17.                                 if (count % 5 == 0)
  18.                                 {
  19.                                         System.err.println();
  20.                                 }
  21.                                 count++;
  22.                         }
  23.                 }
  24.         }
  25. }
复制代码
回复 使用道具 举报
哦 NO, 几天没上论坛这么简单的题目又错过了!!!!
回复 使用道具 举报
活动结束哦了哦..............
回复 使用道具 举报
我是来看帖子的!
回复 使用道具 举报
  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. }
复制代码

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