JXNU1999python 发表于 2021-12-8 18:11

Java自学记录Day21

Java学习记录Day21

1、编写一个方法,求整数n的阶乘,例如5的阶乘是1*2*3*4*5

思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
方法名为printFactorial,意思为输出阶乘,形参类型是整型,返回值类型也是整型。

        import java.util.Scanner;

                public class Work01 {
       
                public static void main(String[] args) {
                //                1、编写一个方法,求整数n的阶乘,例如5的阶乘是1*2*3*4*5
                //                思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
       
                }
                public static int printFactorial(){
                        Scanner input=new Scanner(System.in);
                        System.out.print("请输入一个数字:");
                        int n=input.nextInt();
                        int fact=1;
                        for(int i=1;i<=n;i++){
                                fact*=i;
                        }
                        return fact;
                }

        }



2、编写一个方法,输出大于某个正整数n的最小的质数。

思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。

方法名为minPrime,意思是最小的质数,形参类型为int类型,返回值也是int类型。

(1)、首先思考现实生活中如何判断质数,再思考如何求出某个正整数n的最小的质数.

从n+1开始判断,直到符合条件的最小质数出现,就输出这个最小质数。

(2)、是否需要循环嵌套?如果需要,内循环的循环体是什么内容?

外循环的循环体又是什么内容?

内循环为判断是否为质数,外循环从n+1开始判断是否为质数,不是质数则加1。

(3)、首先在main主方法中编写:输入一个数,然后输出这个数是不是质数。

再分别写出n+1到无穷大的循环语句。

                Scanner input=new Scanner(System.in);
                System.out.print("请输入一个正整数:");
                int i=input.nextInt();
                for(int j=2;j<a;j++){
                        if(a%j==0){       
        //                        System.out.println(a+"不是质数");
                                break;
                        }
       
                }
判断是否为质数,除数只能从2开始自加。

        int n=1;
        int a=n+1;
        for(a;a>1;a++){
        }
(4)、先在main方法中完成方法体部分的设计。

        public static void main(String[] args) {
                // 2、编写一个方法,输出大于某个正整数n的最小的质数。
                //思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
                boolean number=true;
                while(number){
                        Scanner input=new Scanner(System.in);
                        System.out.print("请输入一个正整数:");
                        int i=input.nextInt();
                        int a=i+1;
                        if(a>=4){
                                boolean num=false;
                                for(;i>0;a++){
                                        for(int j=2;j<a;j++){
                                                if(a%j==0){       
        //                                                System.out.println(a+"不是质数");
                                                        break;
                                                }else if(j==(a-1)){
                                                        if(i%j!=0){       
                                                                System.out.println("比"+i+"大的最小质数是"+a);
                                                                num=true;
                                                        }
                                                }               
                                        }
                                        if(num==true){
                                                break;
                                        }
                                }
                               
                        }else if(i==1){
                                System.out.println("比"+i+"大的最小质数是2");
                        }else if(i==2){
                                System.out.println("比"+i+"大的最小质数是3");
                        }else{
                                System.out.println("请输入一个正确的正整数");
                        }
                }
        }
(5)、修改方法名为public static int minPrime() {},最终结构为:

        public static void main(String[] args) {
                Scanner input=new Scanner(System.in);
                System.out.print("请输入一个正整数:");
                int i=input.nextInt();
                Work02Test.minPrime(i);
        }
        public static int minPrime(int i) {
               
                int a=i+1;
                if(a>=4){
                        boolean num=false;
                        for(;i>0;a++){
                                for(int j=2;j<a;j++){
                                        if(a%j==0){       
        //                                                System.out.println(a+"不是质数");
                                                break;
                                        }else if(j==(a-1)){
                                                if(i%j!=0){       
                                                        System.out.println("比"+i+"大的最小质数是"+a);
                                                        num=true;
                                                }
                                        }               
                                }
                                if(num==true){
                                        break;
                                }
                        }               
                }else if(i==1){
                        System.out.println("比"+i+"大的最小质数是2");
                }else if(i==2){
                        System.out.println("比"+i+"大的最小质数是3");
                }else{
                        System.out.println("请输入一个正确的正整数");
                }
                return a;
        }

3、画出以下程序运行过程的内存图

        public class Test{
                public static void main(String[] args){
                        int a = 100;
                        int b = 200;
                        int retValue = m1(a, b);
                        System.out.println(retValue);
                }
                public static int m1(int x, int y){
                        int k = x * 10;
                        int m = y * 10;
                        int result = m2(k, m);
                        return result;
                }
                public static int m2(int c, int d){
                        int e = c / 2;
                        int f = d / 2;
                        int i = e + f;
                        return i;
                }
        }

ygiveupc 发表于 2021-12-8 18:52

<iframe width="250" height="90" frameborder="0" scrolling="no" hspace="0" src="https://i.tianqi.com/?c=code&a=getcode&id=7&py=chongqing&icon=1"></iframe>
好好学习

Adgerlee 发表于 2021-12-8 20:12

互相学习 互相进步!

包子凡 发表于 2021-12-8 20:47

我才看视频学习连一半都还没看到额

gllgcwh 发表于 2021-12-8 21:19

从简入难慢慢来,谢谢楼主分享。
页: [1]
查看完整版本: Java自学记录Day21