public class SquareInt {

    public static void main(String[] args) {
int result; for (int x = ; x <= ; 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;
}
}

1、此代码中采用static调用自定义方法,如果不加static可以使用类名.成员名或者对象名.成员名调用。

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

此程序输出100个随机数,但并未采用随机数发生器写,此程序存在问题。

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

// MethodOverload.java
// Using overloaded methods 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类型,一个为double类型,在输出时int 类型自动调用int类型的方法,double类型自动调用double类型的方法,同时,改动自定义方法的顺序并不影响结果,证明并不是先后顺序决定调用顺序,而是java自动识别参数类型然后找到对应的自定义方法进行计算。

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

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

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; } }

实验结果

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

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;
}
}

实验结果:(此算法借鉴百度)

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

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+"不是回文!");
}
}

 实验结果:

java动手动脑课后思考题的更多相关文章

  1. Java动手动脑——多态和继承

    Java动手动脑——继承和多态 实验一 预估输出答案:100  200  201  202 输出结果:100  200  201  202 输出答案分析:100 创建parent类的对象,调用对象的方 ...

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

    1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...

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

    1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...

  4. java动手动脑和动手实验

    动手动脑一: EnumTest.java: 程序代码: public class EnumTest { public static void main(String[] args) { Size s= ...

  5. java 动手动脑7

    ---恢复内容开始--- 一.动手动脑:多层的异常捕获-1 阅读以下代码(CatchWho.java),写出程序运行结果: ArrayIndexOutOfBoundsException/内层try-c ...

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

    动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器

  7. java动手动脑和课后实验型问题

    1.以下代码的输出结果是什么?为什么会有这个结果? int[] a = { 5, 7, 20 }; System.out.println("a数组中的元素:"); // 循环输出a ...

  8. JAVA动手动脑及课后作业

    1.查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 运行结果 true true false 原因 1)在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0, ...

  9. JAVA动手动脑多态

    动手实验一:下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 先进行自我判断,得出结论后,运行TestCas ...

随机推荐

  1. Make Hadoop 1.2.1 run, my first try

    经历两天努力,8月25日下午2点40分,终于让hadoop1.2.1跑起来. 用的是<Hadoop实战第2版>(陆嘉恒)里面的WordCount例子,虽然书是2013年出的,但用的例子还是 ...

  2. ubuntu15.04下编译 libvirt

    很久没有编译 libvirt了. 工作需要,重新编译. [org_ref]: http://libvirt.org/compiling.html 很简单. 编译过程, 还是很多问题. 依赖包(给懒人参 ...

  3. ceph伦理概念

    Preface: CEPH: THE FUTURE OF STORAGE(未来存储) Ceph was made possible by a global community of passionat ...

  4. Gallery平滑移动

    看了些网上的方法弄了下平滑移动的效果,虽说最后是实现了,实现后发现也不是我想要的效果,对于我幸苦写过的代码先存放在这上面了 package com.layout; import android.con ...

  5. iOS深入学习 (Block全面分析)

    本文翻译自苹果的文档,有删减,也有添加自己的理解部分. 如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block 为了方便对比,下面的代码我假设是写在ViewCon ...

  6. select2简单例子

    1.html中静态值 html <%--multiple 为多选--%> <select multiple id="e1"> <option>& ...

  7. 大写String和小写string的区别

    1.string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色) ; 2.c# string映射为.net Framework的String ; 3.如果用 ...

  8. 几个SQL

    select sum(`value`) from testtable where value != 'error' AND type ='b' in (select DISTINCT(type) fr ...

  9. IE8,9下的ajax缓存问题

    最近在做一个网站的登录注册框,前端使用了jquery.由于sign和login不是在单独的页面上,而是以一个弹出框出现.所以决定使用ajax来实现注册和登录功能.本以为可以一帆风顺,结果在测试的时候发 ...

  10. T-SQL应用,视图、存储过程、触发器、游标、临时表等

    sqlserver常用操作: 视图.存储过程.触发器.函数 --*********************批处理********************* --[在一个批处理中存有一个语法错误,则所有 ...