动手动脑1.当JAVA里定义的函数中去掉static后,怎么办?(如下程序,将square()函数的static去掉)

public class SquareIntTest {

    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");
}
} // 自定义求平方数的静态方法
//问:如果不加static,怎么办?
public static int square(int y) {
return y * y;
}
}

因为static 是静态的意思,main是静态的,想加载的时候就加载了,可将函数写在一个新的类中即可,如下所示:

public class SquareIntTest {

    public static void main(String[] args) {
int result; for (int x = 1; x <= 10; x++) {
result = new Test().square1(x);//非静态
System.out.println("The square of " + x + " is " + result + "\n");
}
}
}
class Test{
public int square1(int y) {
return y*y; }
}

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

(纯随机数发生器)

程序如下:

//博客园作业-编写一个方法,使用纯随机数产生器生成指定数目(比如1000个)的随机整数。
//李慧,2016.10.15 package boke; import java.util.Scanner; public class SuiJiShu { public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("(此系统用于产生制定数目n的随机整数)");
System.out.printf("请输入n:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); //纯随机数发生器
int f1=1;
for(int i = 1;i <= n; i++){
f1=((7^5)*f1+0)% (2^10000);
//输出结果
System.out.print(f1+" ");
if(i%10==0)
System.out.println();
}
}
}

其运行结果:

动手动脑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;
}

此程序中出现了两个函数名相同的函数,经运行系统没有报错,答案也是正确的。这是因为,当具备①方法名相同;②参数类型不同,参数个数不同,或者是参数类型的顺序不同,这两个条件的时候,同名函数才是正确的。但是,方法的返回值并不作为方法重载的判断条件。

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

System是jdk自带的一个类,他有很多的方法,这些方法都是静态的,也就是static的。System.out.print()就相当于一个函数,它之所以可以不断的重复使用,是因为它可以有不同类型的参数,不同个数的参数,参数的顺序也可以不同。

课后作业1:使用计算机计算组合数

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

程序如下:

package boke;

import java.math.BigInteger;
import java.util.Scanner; public class ZuHeShu { public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("........求组合数C(n,k).........n为下标........");
System.out.print("请输入n,k:");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int k = scan.nextInt();
if(n<k)
    System.out.print("ERROR!");
   else
//n!=calculateN2(n);
System.out.print("C("+n+","+k+")="+cN(n)/cN(k)/cN(n-k));
}
public static long cN(int n) {
if(n==1 || n==0){
return 1;
} return n*cN(n-1);
}
}

运行结果是:

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

package boke;

import java.util.Scanner;

public class ZuHeShu2 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("(杨辉三角做法)........求组合数C(n,k).........n为下标........");
System.out.print("请输入n,k:");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int k = scan.nextInt();
if(n<k)
System.out.print("ERROR!");
else{
//n!=calculateN2(n);
//size = new Long(s);
// long A = new Long(CN2(n+1,k)-CN2(n,k-1));
System.out.print("C("+n+","+k+")=");
System.out.println(CN2(n+1,k)-CN2(n,k-1));}
}
public static long cN(int n) {
if(n==1 || n==0){
return 1;
}
return n*cN(n-1);
} //杨辉三角的方法递推计算
public static long CN2(int n,int k){
long A = cN(n)/cN(k)/cN(n-k);
return A; } }

其运行结果:

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

package boke;

import java.util.Scanner;

public class ZuHeShu3 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("(递归的方法利用公式)........求组合数C(n,k).........n为下标........");
System.out.print("请输入n,k:");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int k = scan.nextInt();
if(n<k || k<1)
System.out.print("ERROR!");
else{
//n!=calculateN2(n);
System.out.print("C("+n+","+k+")=");
System.out.println(CN3(n,k));}
}
public static long cN(int n) {
if(n==1 || n==0){
return 1;
}
return n*cN(n-1);
} //递归计算
public static long CN2(int n,int k){
if(n==1 || n==0){
return 1;}
return cN(n)/cN(k)/cN(n-k);
} public static long CN3(int n,int k){
if(n == 1 || n == 0)
{return 1;}
return (CN2(n+1,k)-CN2(n,k-1));
}
}

其运行的结果:

       

其如果出现ERROR时,和上述两个例子是属于相同的情况。

 课后作业2:递归编程解决汉诺塔问题(用JAVA实现)

//disk是磁盘...sourcePeg源PEG...destinationPeg目标PEG...tempPeg临时PEG

package work;

public class Hanoi
{
// 递归移动塔之间的磁盘
public static void solveTowers( int disks, int sourcePeg,
int destinationPeg, int tempPeg )
{
// 移动的时候
if ( disks == 1 )
{
System.out.printf( "\n%d ——> %d", sourcePeg, destinationPeg );
return;
} // 递归步骤--移动(磁盘1)磁盘sourcepeg
// to tempPeg using destinationPeg
solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg ); // 最后从sourcepeg到destinationpeg移动磁盘
System.out.printf( "\n%d ——> %d", sourcePeg, destinationPeg ); // 移动(磁盘1)从临时peg到目的peg磁盘
solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg );
} public static void main( String[] args )
{
int startPeg = 1; // 值1表示startpeg输出
int endPeg = 3; // 值3表示endpeg输出
int tempPeg = 2; // 值2表示temppeg输出
int totalDisks = 3; //有几个托盘 //移动所有磁盘。
solveTowers( totalDisks, startPeg, endPeg, tempPeg );
}
}

其结果截图:

课后作业3:使用递归方式判断某个字串是否是回文( palindrome )

package boke;

import java.util.Scanner;

public class HuiWeiShu {
public static void main(String[] args) {
String S = " ";
System.out.println("(此程序用于判断某个字符串s是否是回文)");
System.out.println("请输入字符串S:");
Scanner scan = new Scanner(System.in);
S = scan.next();
//输出结果
System.out.println(ishui(S));
}
public static boolean ishui(String S){
int L = S.length();//字符串的长度
if(L<=1){
return true;}//字符串是回文
else if(S.charAt(0)!=S.charAt(L-1)){
return false;
}
return ishui(S.substring(1,L-1));
}}

其运行结果:

经运行,其结果正确。

JAVA方法03之动手动脑问题解决的更多相关文章

  1. java异常处理动手动脑问题解决和课后总结

    动手动脑 一.问题:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 1.源代码 import javax.swing.*; cl ...

  2. java课堂第一次随机测试和课件课后动手动脑问题解决(2019-9-16 )

    一.课堂测试 1.课堂测试:花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求 (1)减法结果不能为负数 (2)乘法结果不得超过一百,除法结果必须为整数 (3)题目避免重复: (4)可 ...

  3. JAVA06数组之动手动脑问题解决

     一.随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 1.设计思路:首先生成10个随机数,然后存放至长度至少是10的数组中,然后计算10个随机 ...

  4. Java类和对象动手动脑

    动手动脑1 以下代码为何无法通过编译?哪儿出错了?

  5. JAVA语法基础作业——动手动脑以及课后实验性问题 (八)

    一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...

  6. JAV07接口与继承之动手动脑问题解决

    动手动脑:请自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 1.源代码: package Work; class A{ public A(){ System ...

  7. Java文件与类动手动脑

    动手动脑1: 使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件. package classJava; import java.io.IOExcepti ...

  8. Java课程作业之动手动脑(四)

    1.继承条件下的构造方法调用 class Grandparent { public Grandparent() { System.out.println("GrandParent Creat ...

  9. Java第一节课动手动脑

    在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...

随机推荐

  1. Infinite loop when using cookieless session ID on Azure

    If you use cookieless session ID and deploy them on Azure, you might get infinite loop when you quer ...

  2. Samsung S4卡屏卡在开机画面的不拆机恢复照片一例

    大家好!欢迎再次来到我Dr.wonder的世界, 今天我给你们带来Samsung S4 I9508 卡屏开在开机画面的恢复!非常de经典. 首先看图 他开机一直卡在这里, 然后 ,我们使用专业仪器,在 ...

  3. windows programming can't find windows.h

    在用控制台编译c++程序的时候,可能会遇到找不到windows.h的情况.这是因为我们在使用cl命令的时候,并没有配置好环境变量. 所以我们在运行cl命令之前,我们可以运行C:\Program Fil ...

  4. 漫谈单点登录(SSO)(淘宝天猫)

    1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开 ...

  5. [Machine-Learning] 熟悉 Matlab 中的 map

    概述 map 的意思是映射,即将一个变量映射到另一个变量. 比如将一个字符串映射为一个数值,那个字符串就是map 的键值(key),数值就是map的数据(value). 由此可以把map理解为一个哈希 ...

  6. vpsmate安装

    安装需求 操作系统:CentOS/Redhat 5.4 或 5.4 以上版本,32位或64位均可,推荐使用 CentOS 6.2 64位. 内存大小:运行时占用约 20MB 左右的服务器内存. 请使用 ...

  7. json提交

    function publishPost(postId){ var _csrf = jQuery('*[name="_csrf"]').val(); jQuery.ajax({ t ...

  8. ma60笔记

    60日均线是股价的生命线,跌破生命线就有一定的下跌空间.大 盘指数也有这种规律,当指数跌破60日平均线后,意味着大盘有一定的下跌空间.大盘指数是由所有个股价格加权统计后产生的,而个股价格却有很大的差异 ...

  9. 微信touchmove不生效

    最近在写一个微信里面滑动切换图片的功能,发现在chrome下都正常显示,可是在微信和qq浏览器里面就是不行. 经过一番排查,发现了问题: touchmove只触发了一次. 解决方案: 在touchst ...

  10. Entity Framework 数据库初始化四种策略

    策略一:数据库不存在时重新创建数据库 Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testC ...