java动手动脑思考

1、不加static可以用类名.成员名或者对象名.成员名调用。

public class SquareInt {

    public static void main(String[] args) {
        int result;

        for (int x = 1; x <= 10; x++) {
            result = square(x);
            // Math库中也提供了求平方数的方法
            // result=(int)Math.pow(x,2);
            System.out.println("The square of " + x + " is " + result + "\n");
        }
    }

    // 自定义求平方数的静态方法
    public static int square(int y) {
        return y * y;
    }
}

2、编写一个方法,使用纯随机数发生器算法生成指定数目(比如1000个)的随机整数。

import javax.swing.JOptionPane;

public class Testseed {

   public static void main( String args[] )

   {

      int value;

      String output = "";

      for int i = 1; i <= 100; i++ ) {

         value = 1 + (int) ( Math.random() * 100 );

         output += value + "  ";

         

         if ( i % 10== 0 )

            output += "\n";

      }

      JOptionPane.showMessageDialog( null, output,

         "20 Random Numbers from 1 to 6",

         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   }

}

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;

    }

}

自定义了两个方法,int和double型,输出时int 自动调用int型的方法,double调用double型的方法,与自定义方法的顺序无关。

4、使用计算机计算组合数:

import java.util.Scanner;

public class Zuheshu1 {

    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();

        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("输入非法!");

        }

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

        {

            jieguo=1;

        }

        else

        {

            jieguo=jiechen(n-1)*n;

        }

        return jieguo;

        

    }

}

递推:

package Zuheshu2;

import java.util.Scanner;

public class Zuheshu2 {

    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("结果为:"+jieguo(n,k));

        in1.close();

        in2.close();

    }

    public static int jieguo(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;

        }

    }

递归:

import java.util.Scanner;

public class Zuheshu2 {

    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("结果为:"+jieguo(n,k));

        in1.close();

        in2.close();

    }

    public static int jieguo(int m,int n)

    {

        if(m<0||n<0||m<n)

            return 0;

        if(m==n)

            return 1;

        if(n==1)

            return m;

        return jieguo(m-1,n)+jieguo(m-1,n-1);

    }

}

5.用Java实现递归编程解决汉诺塔问题。

public class TowersOfHanoi

{

   public static void solveTowers( int disks, int sourcePeg,

      int destinationPeg, int tempPeg )

   {

      if ( disks == 1 )

      {

         System.out.printf( "\n%d --> %d", sourcePeg, destinationPeg );

         return;

      }

      solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg );

      System.out.printf( "\n%d --> %d", sourcePeg, destinationPeg );

      solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg );

   }

   public static void main( String[] args )

   {

      int startPeg = 1;

      int endPeg = 3;

      int tempPeg = 2;

      int totalDisks = 3;

      solveTowers( totalDisks, startPeg, endPeg, tempPeg );

   }

}

6.回文数

import java.util.*;

public class Palindrome {

    public static void main(String[]args){

                 //从键盘上输入一个字符串str

              String str="";

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

              Scanner in=new Scanner(System.in);

              str=in.nextLine();

             //根据字符串创建一个字符缓存类对象sb

              StringBuffer sb=new StringBuffer(str);

             //将字符缓存中的内容倒置

              sb.reverse();

             //计算出str与sb中对应位置字符相同的个数n

              int n=0;

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

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

                n++;

              }

             //如果所有字符都相等,即n的值等于str的长度,则str就是回文。

                 if(n==str.length())

                  System.out.println(str+"是回文!");

                 else

                  System.out.println(str+"不是回文!");

             }

    }

时间: 2024-10-14 11:24:05

java动手动脑思考的相关文章

java动手动脑08

一.动手动脑 1)源代码: public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); parent.printValue(); Child child=new Child(); child.printValue(); parent=child; parent.printValue(); parent.myValue++; parent.printValue

java 动手动脑7

---恢复内容开始--- 一.动手动脑:多层的异常捕获-1 阅读以下代码(CatchWho.java),写出程序运行结果: ArrayIndexOutOfBoundsException/内层try-catch 发生ArithmeticException 1.源码: public class CatchWho { public static void main(String[] args) { try { try { throw new ArrayIndexOutOfBoundsException

java动手动脑异常处理

实验任务一:多层的异常捕获-1 1.实验内容:阅读(CatchWho.java),写出程序运行结果: public class CatchWho{ public static void main(String[] args) { try { try { throw new ArrayIndexOutOfBoundsException(); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(  "ArrayIndexOut

Java动手动脑07

(1)现在有三个类: class Mammal{} class Dog extends Mammal {} class Cat extends Mammal{} 针对每个类定义三个变量并进行初始化 Mammal m=null ; Dog d=new Dog(); Cat c=new Cat(); 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 编译错误 d=m;d=c; 不正确 子类对象可以直接赋给基类

java动手动脑和课后实验型问题String类型

1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请新开辟一个地址空间,存储的地址空间不一样(对象不同),string类型下hello是同一个对象,其内容和地址都相容. 2. public class StringEquals { /** * @param args the command line arguments */ public stati

java动手动脑——异常处理

Java07异常处理动手动脑 异常处理的基本知识 Java异常处理通过5个关键字try.catch.throw.throws.finally进行管理.基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理:还有以部分系统生成的异常在Java运行时自动抛出.你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象.finally语句块会在方法执行return之前执行,

Java动手动脑第四讲课堂作业

动手动脑1 完全"手写代码实现"随机数生成 纯随机数发生器 Modulus=231-1=int.MaxValue Multiplier=75=16807 C=0 当显示过231-2个数之后,才可能重复. 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private static final int LEFT = 40; private static fi

java动手动脑和课后实验型问题第四讲

1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Multiplier=75=16807 C=0 当显示过231-2个数之后,才可能重复. 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private static final int

java动手动脑

public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //从字符串中转换 Size u=Size.valueOf("SMALL");