黑马程序员技术交流社区

标题: Java基础班第四天作业 [打印本页]

作者: kelin410    时间: 2016-3-7 12:57
标题: Java基础班第四天作业
  1. 1.分析以下需求,并用代码实现:
  2.         (1)打印1到100之内的整数,但数字中包含9的要跳过
  3.         (2)每行输出5个满足条件的数,之间用空格分隔
  4.         (3)如:1 2 3 4 5
  5. /*
  6. 思路:
  7.         1.因为是打印1~100之间的整数,所以要用一个for循环将1~100全部遍历一遍。
  8.         2.因为要将包含9的数给跳过,所以要对当前被遍历的数进行判断。判断是否包含9。这里我用%10 和 /10 分别判断个位和10位是否为9。
  9.         3.因为每行要只能输出5个数据,所以我用一个count变量来记录已经打印了多少次,如果count的值%5为0就打印一个换行符。
  10. */

  11. class Task1 {
  12.         public static void main(String[] args) {
  13.                 for (int x = 1, count = 0; x <= 100; x++) {
  14.                         if (x % 10 != 9 && x / 10 != 9) {
  15.                                 count++;
  16.                                 System.out.print(x + "\t");
  17.                                 if (count % 5 == 0) {
  18.                                         System.out.println();
  19.                                 }
  20.                         }
  21.                 }
  22.         }
  23. }


  24. 2.分析以下需求,并用代码实现:
  25.         (1)打印1-100之间的所有素数及个数
  26.         (2)每行输出5个满足条件的数,之间用空格分隔
  27.         (3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
  28.         (4)如:2 3 5 7 11
  29. /*
  30. 思路:
  31.         1.因为是1~100之间的数,所以要用for循环遍历1~100的数。
  32.         2.又因为是求素数,所以1直接排除在外。只需要遍历2~100即可。
  33.         3.判断是否为素数的办法就是将这个数除以2~自身减1的所有数。
  34.           一旦这个数能被整除,那么这个数就不是素数,就继续遍历下一个数,否则就将这个数打印出来。我这里用for循环 2~自身减1。
  35.         4.要统计个数就要用计数器思想。定义一个变量count在for循环外。没判断出一个素数count自身就加1。
  36.         5.因为每行只能输出5个数字,所以我用count变量%5来判断是否已经成功打印出5个素数。如果是就插入一个换行符。
  37.         6.外循环执行完以后将count也打印出来。
  38. */

  39. class Task2 {
  40.         public static void main(String[] args) {
  41.                 int count = 0;
  42.                 w:for (int x = 2; x <= 100; x++) {
  43.                         for (int y = 2; y < x; y++) {
  44.                                 if (x % y == 0) {
  45.                                         continue w;
  46.                                 }
  47.                         }
  48.                         System.out.print(x+"\t");
  49.                         if (++count % 5 == 0) {
  50.                                 System.out.println();
  51.                         }
  52.                 }
  53.                 System.out.println("素数的个数为:"+count);
  54.         }
  55. }

  56. 3.分析以下需求,并用代码实现:
  57.         (1)按照从大到小的顺序输出四位数中的个位+百位=十位+千位(3553,2332,1166,8228,3773)的数字及个数
  58.         (2)每行输出5个满足条件的数,之间用空格分隔
  59.         (3)如:9999 9988 9977 9966 9955        
  60. /*
  61. 思路:
  62.         1.因为是计算4位数,所以值的范围是在1000~9999之间,这里我用for语句进行遍历。
  63.         2.对遍历出来的数字进行拆位,例如:4352拆位后得出:4  3  5  2,拆位后分别存入ge,shi,bai,qian 四个变量。这里用/  和  %  运算符。
  64.         3.判断ge+bai是否等于shi+qian。如果相等就输出这个数。并在for语句外定义一个count变量用来存放已经找出了多少个。
  65.         4.因为每行只能输出5个,所以在输出完以后对count变量进行判断,如果%5=0就插入一个换行符。
  66.         5.最后在循环外将count变量打印输出。
  67. */

  68. class Task3 {
  69.         public static void main(String[] args) {
  70.                 int count = 0;
  71.                 for (int x = 1000; x <= 9999; x++) {
  72.                         int ge, shi, bai, qian; //定义四个变量用来存放个位,十位,百位和千位的数。
  73.                         ge = x % 10;
  74.                         shi = x / 10 % 10;
  75.                         bai = x / 100 % 10;
  76.                         qian = x / 1000;
  77.                         if (ge + bai == shi + qian) {
  78.                                 System.out.print(x + "\t");
  79.                                 if (++count % 5 == 0) {
  80.                                         System.out.println();
  81.                                 }
  82.                         }
  83.                 }
  84.         }
  85. }

  86. 4.分析以下需求,并用代码实现:
  87.         (1)珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.001米。
  88.         (2)请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
  89. /*
  90. 思路:
  91.         1.一张纸折叠一次厚度增加一倍,折叠第二次,厚度有增加一倍,他的规律是 1 变 2, 2 变 4, 4 变 8 。
  92.         2.从分析可以看出,每次的厚度都增加了一倍;这个要用循环来实现。在循环内用thickness=thickness*2,记录当前的厚度。
  93.           但是循环多少次不知道。因为n是未知的。所以这里我用死循环来做。在循环外定义一个count来记录折叠的次数。
  94.         3.在循环内每次算出thickness的值后判断是否等于8848,如果相等跳出循环。
  95.         4.最后输出count的值。
  96. */

  97. class Task4 {
  98.         public static void main(String[] args) {
  99.                 double altitude = 8848;
  100.                 double thickness = 0.001;
  101.                 int count = 0;
  102.                 while (true) {
  103.                         count++;
  104.                         thickness = thickness * 2;
  105.                        
  106.                         if (thickness >= altitude) {
  107.                                 break;
  108.                         }
  109.                 }
  110.                 System.out.println(count);
  111.         }
  112. }

  113. 5.分析以下需求,并用代码实现:
  114.         (1)倒着打印九九乘法表

  115. class Task5 {
  116.         public static void main(String[] args) {
  117.                 for (int x = 9; x >= 1; x--) {
  118.                         for (int y = 1; y <= x; y++) {
  119.                                 System.out.print(y + "*" + x + "=" + x * y + "\t");
  120.                         }
  121.                         System.out.println();
  122.                 }
  123.         }
  124. }

  125. 6.分析以下需求,并用代码实现:
  126.         (1) 计算15+25+35+....+1005的和

  127. /*
  128. 思路:
  129.         1.从上面的要求中可以看出要将15~1005遍历一遍,而每个数都比上个数多10。所以循环的跳距是10。
  130.         2.对每个遍历的数据累加求和。
  131. */

  132. class Task6 {
  133.         public static void main(String[] args) {
  134.                 int sum = 0;
  135.                 for (int x = 15; x <= 1005; x += 10) {
  136.                         sum += x;
  137.                 }
  138.                 System.out.println("15+25+35+....+1005的和为:"+sum);
  139.         }
  140. }
  141.        
  142. 7.分析以下需求,并用代码实现:
  143.         (1)打印倒直角三角形
  144.                 *****
  145.                 ****
  146.                 ***
  147.                 **
  148.                 *
  149.         (2)打印等边三角形(题目较难,可作为扩展)
  150.                     *
  151.                    * *
  152.                   * * *
  153.                  * * * *

  154. class Task7 {
  155.         public static void main(String[] args) {
  156.                 //打印第一个三角形。
  157.                 for (int x = 1; x <= 5; x++) {
  158.                         for (int y = x; y <= 5; y++) {
  159.                                 System.out.print("*");
  160.                         }
  161.                         System.out.println();
  162.                 }
  163.                 System.out.println("----------------");
  164.                
  165.                 //打印第二个三角形。
  166.                 for (int x = 1; x <= 4; x++) {
  167.                         for (int y = x; y <= 3; y++) {
  168.                                 System.out.print(" ");
  169.                         }
  170.                         for (int z = 1; z <= x; z++) {
  171.                                 System.out.print("* ");
  172.                         }
  173.                         System.out.println();
  174.                 }
  175.         }
  176. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2