1.SquareIntTest.java中不用static如何还能使用Square函数
解决方法:
2、
代码:
import java.util.Scanner;
public class Suiji {
public static void main(String[] args) {
System.out.print("请输入要输出的随机数个数:");
Scanner s = new Scanner(System.in);
int num = s.nextInt();
//生成随机数
int seed = (int)(Math.random() * 1000);
int a = (int)(Math.random() * 1000);
int c = (int)(Math.random() * 1000);
int m = (int)(Math.random() * 1000);
for(int i = 0;i < num;i++)
{
seed = (a * seed + c) % m;
System.out.print(seed + " ");
}
}
}
结果:
3.动手动脑
方法的重载,方法名相同,但引用的参数类型不同,调用的方法就会不同。
4.课后作业1
(1)代码:
import java.util.Scanner;
public class Zuhe1 {
public static void main(String[] args) {
System.out.print("请输入组合数的上标k,下标n:");
Scanner s = new Scanner(System.in);
int k = s.nextInt();
int n = s.nextInt();
if(k > n)
System.out.println("输入有误!");
else
{
int result = Cal(n)/(Cal(k) * Cal(n - k));
System.out.println("结果为:" + result);
}
}
public static int Cal(int x)
{
if(x == 0 || x == 1)
return 1;
else
return x * Cal(x - 1);
}
}
运行结果截图:
(2)代码:
import java.util.Scanner;
public class Zuhe2 {
public static void main(String[] args) {
System.out.print("请输入组合数的上标k,下标n:");
Scanner s = new Scanner(System.in);
int k = s.nextInt();
int n = s.nextInt();
if(k > n)
System.out.println("输入有误!");
else
{
int result = Cal(n, k);
System.out.println("结果为:" + result);
}
}
public static int Cal(int x,int y)
{
if(y == 0 || x == y)
return 1;
else
{
int k = 1,j = 1,i;
for(i = x;i > x - y;i--)
{
k = k * (i) / j;
j++;
}
return k;
}
}
}
结果截图:
5.课后作业2:递归编程解决汉诺塔问题。用Java实现
代码:
package T3;
import java.util.Scanner;
public class Hanoi {
public static void main(String[] args) {
System.out.println("汉诺塔有三个座A、B、C,初始状态为A上有一些盘子,要将盘子移动到C上。");
System.out.print("请输入盘子数:");
Scanner N = new Scanner(System.in);
int n = N.nextInt();
System.out.print("移动方法为:");
solve('A','B','C',n);
}
public static void solve(char start,char temp,char end,int num)
{
if(num == 1)
System.out.printf("%c --> %c ",start,end);
else
{
solve(start,end,temp,num - 1);
System.out.printf("%c --> %c ",start,end);
solve(temp,start,end,num - 1);
}
}
}
结果:
6.课后作业3:使用递归方式判断某个字串是否是回文( palindrome )
代码:
package demo;
import java.util.Scanner;
public class IsHuiwen {
public static void main(String[] args) {
System.out.print("请输入字符串:");
Scanner S = new Scanner(System.in);
String s = S.nextLine();
if(Huiwen(s) == 1)
System.out.println(s + "是回文数!");
else
System.out.println(s + "不是回文数!");
}
public static int Huiwen(String str)
{
if(str.length() == 0||str.length() == 1)
return 1;
else
{
char First = str.charAt(0);
char End = str.charAt(str.length() - 1);
if(First != End)
return 0;
}
return Huiwen(str.substring(1,str.length() - 1));
}
}
结果截图: