JXNU1999python 发表于 2021-12-6 21:35

Java自学记录Day19

本帖最后由 JXNU1999python 于 2021-12-7 07:49 编辑

Java学习记录Day19
一、完成作业

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

      public static void main(String[] args) {
                int i = 1;
                int sum = 0;
                while(i<=1000){
                        if(i%7==0){
                        }else{
                              sum+=i;
                        }
                        i++;
                }
                System.out.println(sum);
      }

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

      public class HomeworkFirst01 {
                public static void main(String[] args) {
                        int i = 1;
                        int sum = 0;
                        while(i<=100){
                              System.out.println(i);
                              sum+=i;
                              i++;
                        }
                        System.out.println(sum);
                }
      
      }
3、从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*1。

      import java.util.Scanner;
      public class Work03 {
                public static void main(String[] args) {
                        Scanner input=new Scanner(System.in);
                        System.out.print("请输入一个正整数:");
                        int i=input.nextInt();
                        int num=1;
                        for(int j=1;j<=i;j++){
                              num*=j;
                        }
                        System.out.println(num);
                }
      
      }

4、从控制台接收一个正整数,判断该数字是否为质数
质数(质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数)

                System.out.print("请输入一个正整数: ");
                        double i=input.nextDouble();
                        if(i>2){
                              double a=2;
                              for(;a<i;a++){
                                        if(i%a==0){
                                                System.out.println(i+"不是质数");
                                                break;
                                        }
                              }
                              if(a==i){
                                        System.out.println(i+"是质数");
                              }
      //                              System.out.print(i+"不是质数");
                        }else if(i==2){
                              System.out.println(i+"是质数");
                        }else if(i<1){
                              System.out.print("请再次输入一个正确正整数: ");
                        }else if((i<2)&&(i>1)){
                              System.out.print("请再次输入一个正确正整数: ");
                        }else if(i==1){
                              System.out.println(i+"不是质数");
                        }

5、从键盘接收一个正整数,该正整数作为行数,输出以下图形
   *
    ***
   *****
*******
*********
例如:输入5,则打印如上图5行。

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

      public static void main(String[] args) {
                int time=1;
                for(double money=2.5;money<100;money+=2.5){
                        if(time%5==0){
                              money-=6;
                        }
                        time++;
                }
                System.out.println(time);
      }

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

      public static void main(String[] args) {
                        // 一个数如果恰好等于它的因子之和,这个数就是完数,例如 6 = 1 + 2 + 3,编程
                        //找出1000内所有的完数。
                for(int i=1;i<=1000;i++){
                        int sum=0;
                        for(int j=1;j<i;j++){
                              if(i%j==0){
      //                              System.out.println(j+"是"+i+"的因子");
                                        sum+=j;
      //                              System.out.println(sum);
                              }
                        }
                        if(sum==i){
                              System.out.println(i);
                        }else{
      //                        System.out.println(i+"不是完数");
                        }
                }
      }
8、给一个不多于5位的正整数,
要求:
(1)、求它是几位数
(2)、逆序打印出各位数字????

      import java.util.Scanner;
      public class Work08 {
                public static void main(String[] args) {
                        Scanner input=new Scanner(System.in);
                        boolean num=true;
                        while(num){
                              System.out.print("请输入1-9999内的任意正整数:");
                              int i=input.nextInt();
                              double j=i/1000;
                              if((i>=0)&&(i<=9999)){
                                        if(j>=1){
                                                System.out.println(i+"是四位数。");               
                                        }else if(j<1){
                                                double k=i/100;
                                                if(k>=1){
                                                      System.out.println(i+"是三位数。");
                                                }else if(k<1){
                                                      double a=i/10;
                                                      if(a>=1){
                                                                System.out.println(i+"是两位数。");
                                                      }else if(a<1){
                                                                System.out.println(i+"是一位数。");
                                                      }
                                                }
                                        }
                              }else{
                                        System.out.println("\n");
                              }
                        }
                }

      }
二、问题

1、作业5的内循环应该怎么写?需要用多少层循环嵌套。类似于倒立三角形的习题。

2、修正第二题的错误。

    public static void main(String[] args) {
        int i = 2;
      int sum = 1;
      while(i<=100){
            if(i%2==0){
            sum+=i;
            }else{
                sum-=i;
            }
            i++;
      }
      System.out.println(sum);

    }

AngryMuGuL 发表于 2021-12-6 22:31

加油,真的很棒,自学成才,才牛掰!

13677661413 发表于 2021-12-6 22:51

指正 第二题错了 你做成了累加题目是有正负号区别

99junlin99 发表于 2021-12-7 00:22

第八题让我想起网上的88万行代码的switch加case

a673034170 发表于 2021-12-7 09:03

可以学一下java8的stream吧

phxi 发表于 2021-12-7 09:31

加油呀,坚持不懈

alan3258 发表于 2021-12-7 10:14

看书自学 or 看视频自学啊?
页: [1]
查看完整版本: Java自学记录Day19