当前位置: 代码迷 >> 综合 >> 动力节点 Java 基础练习题(day09)
  详细解决方案

动力节点 Java 基础练习题(day09)

热度:92   发布时间:2024-01-16 01:35:52.0

 

B站 av88459449 162P

问题

1. 计算1000以内所有不能被7整除的整数之和

2. 计算 1+2-3+4-5+6-7...+100 的结果

3. 从控制台输入一个正整数, 计算概述的阶乘. 例如输入5, 阶乘为 5*4*3*2*1

4. 从控制台接收一个正整数, 判断该数字是否为质数

质数: 在大于1的自然数中, 除了1和它本身以外不再有其它因数的自然数

5. 从键盘接收一个正整数, 该正整数作为行数, 输出以下图形

例如, 输入5, 打印图形

    *

   ***

  *****

 *******

*********

6. 小芳的妈妈每天给她2.5元钱, 她都会存起来, 每当这天是存钱的第5天或者5的倍数的话, 她就会花6元钱. 请问, 经过多少天, 小芳可以存到100元钱.

7. 一个数如果恰好等于它的因子之和, 这个数就是完数, 例如 6=1+2+3, 编程找出1000内的所有完数

8. 给一个不多于5位的正整数

要求:

* 求它是几位数

* 逆序打印出各位数字

 

对应作业

1.

public class Homework00 {public static void main(String[] args) {int result = 0;for (int i = 1; i <= 1000; i++) {if (i % 7 != 0) {result += i;}}System.out.println("结果是: "+result);}
}

2.

public class Homework01 {public static void main(String[] args) {int result = 1;for (int i = 2; i <= 100; i++) {if (i%2 == 0) {result += i;} else {result += i * -1;        // 这里老师用的写法是 result -= i;}}System.out.println("结果是: "+result);}
}

3.

import java.util.Scanner;public class Homework02 {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("请输入您要计算的正整数: ");int input = s.nextInt();int result = 1;if (input > 0) {for (; input > 0; input--) {result *= input;}} else {System.out.println("您的输入似乎不正确");return;                                    // 这里我一开始用的 break , 不对哦}System.out.println("结果是: "+result);}
}

4.

import java.util.Scanner;public class Homework03 {public static void main(String[] args) {
/*这题老师用了布尔标记, 在这边加一个 boolean isPrime = true
*/Scanner s = new Scanner(System.in);System.out.print("请输入您要判断的正整数: ");int input = s.nextInt();for (int i = 2; i < input; i++) {if (input % i == 0) {System.out.println(input+" 不是质数");return;}}System.out.println(input+" 是质数");}
}

5.

public class Homework04 {public static void main(String[] args) {java.util.Scanner s = new java.util.Scanner(System.in);System.out.print("请指定您要打印的行数: ");int line = s.nextInt();for (int i = 1; i <= line; i++) {for (int j = line - i; j > 0; j--) {System.out.print(" ");}for (int j = 1; j < i * 2; j++) {System.out.print("*");}System.out.println();}}
}

6.

public class Homework05 {public static void main(String[] args) {int day = 1;        // 因为 for 循环没有初始条件, 所以直接从 1 开始, 我一开始用的 0double total = 0;for (;; day++) {
/*老师用的是 while 循环写法如 while(total < 100)
*/total += 2.5;if (total >= 100) {/*这里要用 >= , 我一开始用了 >同时注意钱数的判断放在扣钱前面, 因为一旦存够, 条件就已经满足*/System.out.println("这是第 "+day+" 天, 小芳存够了 100 元.");return;}if (day % 5 == 0) {total -= 6;}}}
}

7.

public class Homework06 {public static void main(String[] args) {System.out.println("1000以内的完数有: ");for (int i = 2; i <= 1000; i++) {        // 1 不是完数, 所以从 2 开始int sum = 0;for (int j = 2; j < i; j++) {        // 这里老师用了 j < i/2 , 测试了下, 确实可以if (i % j == 0) {sum += j;}}if (i == 1+sum) {System.out.println(i+" ");}}}
}

8.

public class Homework07 {public static void main(String[] args) {java.util.Scanner s = new java.util.Scanner(System.in);int input = s.nextInt();int w5 = input / 10000;int w4 = (input - w5 * 10000) / 1000;int w3 = (input - w5 * 10000 - w4 * 1000) / 100;int w2 = (input - w5 * 10000 - w4 * 1000 - w3 * 100) / 10;int w1 = input - w5 * 10000 - w4 * 1000 - w3 * 100 - w2 * 10;if (w5 > 0) System.out.println("五位数");else if (w4 > 0) System.out.println("四位数");else if (w3 > 0) System.out.println("三位数");else if (w2 > 0) System.out.println("两位数");else System.out.println("一位数");System.out.println(""+w1+(w2==0?"":w2)+(w3==0?"":w3)+(w4==0?"":w4)+(w5==0?"":w5));}
}