java课后作业_java课后作业-4

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

public class suiji

{

private static final int N = 200;

private static final int LEFT = 40;

private static final int RIGHT = 10000;

private static long x0 = 1L;

private long a = 1103515245L;

private long c = 12345L;

private long m = 2147483648L;

// 产生随机数

private long rand ( long r )

{

// a,c,m为常数

r = ( r * a + c ) % m;//Xn+1=(aXn + c)mod m

return r;

}

private long little ( int a, int b, long rand )

{

return a + rand % ( b - a + 1 );

}

private void recursion ( int count, long rand )

{

if (count >= N)

{

return;

}

rand = rand (rand);

long r = little (LEFT, RIGHT, rand);

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

recursion (++count, rand);

}

public static void main ( String[] args )

{

suiji recur = new suiji ();

recur.recursion (0, x0);

}

}

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

a2fc4ab7afaaf986ca6a42ac52a7e8b8.png

上述代码展示了java中“方法重载”的特性,不同的参数类型可以自动调用相应的函数(方法),即方法的重载。

满足以下条件的两个或多个方法构成“重载”关系:

(1)方法名相同;

(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。

注意:方法的返回值不作为方法重载的判断条件。

三。课后作业一:使用计算机计算组合数

0fbc20f58a02cd38aa44f8f80b35febb.png

a5eb38de11f188610b6893ef87b73612.png

482dc13e3ae7d414b94aa7fdb2e35a1b.png

课后作业二:

汉诺塔问题

1b99dfba6159b5b19199faf22a1eb7b3.png

课后作业三:

使用递归方法判断某个字串是否是回文

bcb85f7eb1eda63c249a7f34985ceabb.png

13b0254b082f30134006e1412fa3569d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java黑皮书课后习题10.11要求我们编写一个程序,该程序在一个二维数组中查找是否存在一个指定的值。如果存在,则返回该值的位置(行和列),否则返回(-1, -1)。 首先,我们需要创建一个二维数组,并初始化它。然后,通过遍历数组的每个元素来查找指定值。当找到指定值时,记录其位置并返回。 以下是解题思路: 1. 创建一个名为findValue的方法,参数为一个二维整数数组和一个整数值。 2. 在方法内,使用两个嵌套的for循环遍历数组的每个元素,外层循环控制行,内层循环控制列。 3. 在每次循环中,检查当前元素是否等于指定值。如果是,返回当前位置(row, column)。 4. 如果遍历完整个数组都没有找到指定值,返回位置(-1, -1)。 以下是代码示例: ```java public class Main { public static void main(String[] args) { // 创建二维数组 int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int target = 5; // 指定值 // 调用findValue方法查找指定值的位置 int[] position = findValue(array, target); // 输出结果 if (position[0] == -1 && position[1] == -1) { System.out.println("指定值不存在!"); } else { System.out.println("找到指定值,位置为(" + position[0] + ", " + position[1] + ")"); } } public static int[] findValue(int[][] array, int target) { for (int row = 0; row < array.length; row++) { for (int column = 0; column < array[row].length; column++) { if (array[row][column] == target) { return new int[]{row, column}; } } } return new int[]{-1, -1}; } } ``` 以上代码会输出"找到指定值,位置为(1, 1)",即指定值5在二维数组的第2行第2列。如果指定值不在数组中,则输出"指定值不存在!"。 希望这个回答对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值