首页 > 代码库 > 动手动脑03

动手动脑03

1、在类中定义方法必须加static,如果不加的话,必须将方法放入类中。如果不加static,必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用。

 技术分享

 

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

package demo;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Random;

 

public class test1

{

public static void main(String args[]) throws IOException

{

int i,n;

System.out.println("Input the number:");

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String readn = reader.readLine();

n = Integer.parseInt(readn);

for(i = 0;i <= n;i ++)

{

System.out.print(Number() + "  ");

}

}

public static int Number()

{

int value;

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

value = http://www.mamicode.com/1 + (int) ( Math.random() * 6 );

return value;

}

}

 

 技术分享

 

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

public class MethodOverload {

 

    public static void main(String[] args) {

        System.out.println("The square of integer 7 is " + square(7));

        System.out.println("\nThe square of double 7.5 is " + square(7.5));

    }

 

    public static int square(int x) {

        return x * x;

    }

 

    public static double square(double y) {

        return y * y;

    }

}

分析:这段代码体现了java中的方法重载,方法名相同但参数类型不同。在输入int类型时自动调用int类型的方法,在输入double类型时自动调用double类型的方法。

 技术分享

 

4、练习:查看一下JDK中System.out.println()方法,你发现了什么?

这个方法可以换行。

5、import java.util.Scanner;public class ZuheShu {

    public static void main(String[]args){

        System.out.println("请输入组合数的nk:");

        Scanner in1=new Scanner(System.in);

        int n=in1.nextInt();

        Scanner in2=new Scanner(System.in);

        int k=in2.nextInt();

        int result=jiechen(n)/(jiechen(k)*jiechen(n-k));

        System.out.println("结果为:"+result);

        in1.close();

        in2.close();

    }

    public static int jiechen(int n)

    {

        int jieguo=1;

        if(n<0)

        {

            System.out.println("error!");

        }

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

        {

            jieguo=1;

        }

        else

        {

            jieguo=jiechen(n-1)*n;

        }

        return jieguo;

         

    }

 

}

 技术分享

 

 

6、杨辉三角,使用递推的方法用杨辉三角形计算

package demo;

 

import java.util.Scanner;

 

public class Yanghui {

    public static void main(String[]args){

        System.out.println("请输入组合数的n和k:");

        Scanner in1=new Scanner(System.in);

        int n=in1.nextInt();

        Scanner in2=new Scanner(System.in);

        int k=in2.nextInt();

        System.out.println("结果为:"+result(n,k));

        in1.close();

        in2.close();

    }

    public static int result(int n,int m)

    {

        if(m==0||n==m)

            return 1;

        int s=Math.min(m, n-m);

        int f=1,f1=0;

        for(int i=1;i<=s;i++)

        {

            f1=f*(n-i+1)/(i);

            f=f1;

        }

        return f1;

        }

    }

 技术分享

 

7、回文数

package demo;

import java.util.*;

public class Huiwen {

    public static void main(String[]args){

              String str="";

              System.out.println("请输入一个字符串:");

              Scanner in=new Scanner(System.in);

              str=in.nextLine();

              StringBuffer hw=new StringBuffer(str);

              hw.reverse();

              int n=0;

              for(int i=0;i<str.length();i++){

               if(str.charAt(i)==hw.charAt(i))

                n++;

              }

                 if(n==str.length())

                  System.out.println(str+"是回文字符串");

                 else

                  System.out.println(str+"不是回文字符串");

             }

    }

 技术分享

 

动手动脑03