java 课后作业

杨辉三角

组合数

public class YH
{
public static void main(String agrs[])
{
int a[5][5],i,j;
for(i = 0;i < 5 ;i++)
{
for(j = 0;j < i;j++)
{
if(i == j || j == 1) a[i][j] = 1;
else
a[i][j] = a[i][j-1] + a[i-1][j-1];
System.out.print(a[i][j]);
}
System.out.print('\n');
}
}

  重载

 public static int sgg(int n)//递归法计算阶乘
{
int s = 0;
if(n < 0)
System.out.println("错误!");
else if(n == 1||n == 0)
s = 1; else
s = n * sgg(n -1);
return s;
}
} public class sgg {
public static void main(String[] args) {// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.print("请输入n:");
int n = in.nextInt();

  

汉诺塔

package NO4class;

public class Hannuota {

	/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(hannuota(4)); }
public static int hannuota(int pan ){
int step=0;
if(pan==1){step=1;
}
else {
step=2*hannuota(pan-1)+1; }
return step;
} }

  

回文

package test;
import java.util.*;
public class sgg {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="";
System.out.println("请输入一个字符串:");
Scanner in=new Scanner(System.in);
str=in.nextLine();
StringBuffer sb=new StringBuffer(str);
sb.reverse();
int n=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==sb.charAt(i))
n++;
} if(n==str.length())
System.out.println(str+"是回文!");
else
System.out.println(str+"不是回文!");
}
}

  

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

// 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的“方法重载。满足以下条件的两个或多个方法构成“重载”关系:

1.必须是同一个类
2.方法名(也可以叫函数)一样
3.参数类型不一样或参数数量不一样

原因,方法地返回值在最后出结果地时候才会进行判断是否符合条件固不能用返回值作为方法重载判断的标准。

练习:

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

”+“在java里可以进行字符串拼接!
System.out.println(i);//直接输出变量
System.out.println("11111");//这是直接输出字符串
System.out.println("i = " + i);//这是拼接的,如果i=字符串输出“字符串”,如果i=“string”输出“i=string”。
System.out.println(i+i+“222a”+j+j);
当多个变量或变量和字符串相加时,变量和字符串一般就是互相拼接。
但当某些变量为int类型时,如上面的int i=1 j=1;输出“2222a11”。
可以看出int类型在前相加时是先进行加法运算的,后面则是默认转换成String类型。
Java中输出语句是重载过地可以识别多种不同的链接方式

  

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

import java.math.*;
public class test2 { public static void main(String[] args) {
// TODO Auto-generated method stub
int x=22,a=33,c=12, m=11;int k=0;
for(int i=0;i<1000;i++){
x=(a*x+c)%m;
a+=5;x+=2;c++;m+=4;//生成的是伪随机数
k++;
System.out.print(x+" ");
if(k%5==0)
System.out.println();
}
} }

  

上一篇:Exception 06 : org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session :


下一篇:HDU 5683 zxa and xor 暴力模拟