• java 作业03方法


    思考问题1

     

    编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

    一 思路

     

       1 定义主方法。

       2 定义数组存放随机数。

       3 确定种子。

       4 用随机数公式生成随机数。

       5 输出随机数。

     

    二 程序流程图

     

    三 源代码

     

       public class random1000 {

       

        public static void main(String[] args){   //主函数

            int[] a=new int[7];                     //定义数组存放随机数

            //Random ran= new Random( System.currentTimeMillis() );

            a[0]=2;                                  //种子

           

            System.out.println("生成的五个随机数是:");

            for(int i=1;i<=5;i++){

               

                a[i]=(7*a[i-1]+7)%1000;      //用随机数公式生成随机数

                System.out.println(a[i]);    //输出

            }

     

        }

     

    }

    四 程序结果截图

     

                                                                                                                       

     

    思考问题2

    JDK中System.out.println()方法

    Print方法有很多重载的方法。当不传值时会调用println()空参数方法,这个方法里面做了换行操作,这个方法它是有打印数据的,只不过这个是一个换行符。

    思考问题3

    请看以下代码,你发现什么特殊之处了吗?

     

    square()方法中方法名一样,参数类型不一样。

    函数重载体现在(1)方法名相同;(2)参数的个数不同,参数类型不同,参数类型的顺序不同。

    程序题

    一 计算组合数

    使用计算机计算组合数有三种方法:

     (1)使用组合数公式利用n!来计算

         

    (2)使用递推的方法用杨辉三角形计算

     

    (3)使用递归的方法用组合数递推公式计算

    1 用递归的方法用组合数递推公式计算

    思路

    1)定义主方法

    2)输入组合数。

    3)调用方法求组合数

    4)定义求组合数的方法。

    5)方法结束的条件。

    6)用杨辉三角递归调用自己。

    7)输出结果

    流程图                                                                                         

     

    源代码

    import java.util.Scanner;                    

     

    public class yanghui3 {

        public static void main(String args[]){    //定义主方法

           

            System.out.println("please input a zuheshu"); //输入组合数

            Scanner in=new Scanner(System.in);

            int n=in.nextInt();

            int k=in.nextInt();

           

    if (n < k || n <= 0 || k <= 0) {

                System.out.println("n,k数据输入不合理");

                return;

               }

            System.out.println(digui(n,k));                //调用方法求组合数

        }

     

        public static int digui(int n,int k)           //定义求组合数方法

        {

           

            if(k==0||k==n)                            //方法结束条件

                return 1;

            else

                return digui(n-1,k)+digui(n-1,k-1);  //杨辉三角计算组合数递归调用

        }

    }

    程序结果截图

      

    2 用组合数公式计算

    思路

    1)定义主方法

    2)输入组合数。

    3)调用方法求组合数

    4)定义求组合数的方法。

    5)方法结束的条件。

    6)用杨辉三角递归调用自己。

    7)输出结果

    流程图                                                                                         

                 

    源代码

    import java.io.*;

    public class yanghui {

        public static void main(String args[]) throws IOException //定义主方法

        {

            int n,k,a;

           

            System.out.println("Please input n,k:");        //输入

        BufferedReader read=new BufferedReader(new InputStreamReader(System.in));                        //读入字符串

            String aa=read.readLine();

            String bb=read.readLine();

           

            n=Integer.parseInt(aa);                        //类型转换为整型

            k=Integer.parseInt(bb);

     

     if (n < k || n <= 0 || k <= 0) {

                System.out.println("n,k数据输入不合理");

                return;

               }

     

            

            a=jiecheng(n)/(jiecheng(k)*jiecheng(n-k));

           

            System.out.println("组合数的值是:"+a);     //输出

        }

     

        public static int jiecheng(int n){             //定义求阶乘的方法

            if(n==1||n==0)

                return 1;

            else

                return n*jiecheng(n-1);                 //递归调用

        }

    }

    程序截图

      

    二 汉诺塔题

    递归编程汉诺塔问题,用程序实现

    1 思路

    1)        定义主方法

    2)        输入盘子个数

    3)        调用玩游戏的方法

    4)        定义移动一个盘子的方法

    5)        定义玩游戏的方法

    2流程图

       

    3源代码

     

    import java.util.Scanner;

    public class hannuota {

        static int i=0;

        public static void main(String[] args) {        //定义主方法

            // TODO Auto-generated method stub

     

            int n;

           

            System.out.println("Please input n:");  //输入盘子个数

            Scanner in=new Scanner(System.in);

            n=in.nextInt();

            han(n,'a','b','c');               //调用玩游戏的方法

        }

       

        public static void move(char a,int n,char c){     //定义移动一个盘子的方法

            i++;

          System.out.println("第"+i+"步,"+"将第"+n+"个盘子从"+a+"移到"+c);

         

           

        }

       

       public static void han(int n,char a,char b,char c){ //定义玩游戏的方法

       

           if(n==1)                   //盘子是一个的时候把第一个盘子从a移到c;

               move(a,1,c);  

           else

           {

               han(n-1,a,c,b);    //将a上1-n-1的移到b,c过渡

               move(a,n,c);       //将编号为n的从a移到c

               han(n-1,b,a,c);    //将b上1-n-1的移到a,c过渡

     

           }

        }

     

    }

    4 程序截图

     

    三 回文数

    1 思路

    6)        定义主方法

    7)        输入字符串

    8)        调用玩游戏的方法

    9)        定义移动一个盘子的方法

    10)    定义玩游戏的方法

    2流程图

         

    3 源代码

    import java.util.Scanner;

    public class huiwenshu {

     

        public static void main(String[] args) {              //定义主方法

            // TODO Auto-generated method stub

     

            String str="";

            System.out.println("Please input a string:");   //输入字符串

           

            Scanner in=new Scanner(System.in);

           

            str=in.nextLine();

            int len=str.length();                            //求字符串长度

            System.out.println("true is palindrome,false is not:"+pan(str,len-1,0,len)); }

    public static boolean pan(String str,int h,int z,int len){ //定义判断是否是回文数的方法

       

     

        if(len==0||len==1)       //函数结束条件

            return true;

       

        if(str.charAt(h)!=str.charAt(z))  //对应的不相等就不是回文数

                return false;

        return  pan(str,h-1,z+1,len-2);  //递归调用

       

    }

     

    }

    4 程序结果截图

     

  • 相关阅读:
    Springboot项目使用Juint单元测试
    ubuntu安装python
    ubuntu安装mysql
    ubuntu系统添加开机自动启动 /home/ubuntu/myscript/startpic.sh 脚本
    ubuntu关闭mysql日志
    ubuntu 系统 pycharm做软连接
    ubuntu系统开机自动爬取数据
    ubuntu系统添加开机自动启动django
    Ubuntu系统设置不休眠
    xshell 打开pycharm 按 ctrl+shift 可取消输入一个字母出现两个字母的现象
  • 原文地址:https://www.cnblogs.com/jingxiaopu/p/5967518.html
Copyright © 2020-2023  润新知