java杨辉三角问题
我试着用递归去解决杨辉三角问题,但是总是出错,这段代码哪里出现问题了?
import java.util.Scanner;
public class Test {
	
	public static void main(String[] args){
		int n,i,j,h,k,m,Result;
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("输入杨辉三角的行数:");
		n=scanner.nextInt();
		
		for(j=1;j<=n;j++){
			for(h=1;h<=n-j;h++)  System.out.print(" ");
			if(j==1) System.out.println(j);
			else
				for(i=0;i<j;i++){
					if(i==0) System.out.print("1"+" ");
					else{
						k=i;
						Result=DiGui1(n)/(DiGui2(k)*DiGui2(k));
						System.out.print(Result+" ");
						}
			}
			
			System.out.println();
		}
		
	}
	
	static int DiGui1(int n){
		if(n==1||n==0) return 1;
		else  return n*DiGui1(n-1);
	}
	
	static int DiGui2(int k){
		if(k==1||k==0) return 1;
		else return k*DiGui2(k-1);
	}
	
}
              
              
------解决方案--------------------怎么出错了,说一下现象,是语法错了还是输出的结果不对?我运行了一下,好像可以出结果 
------解决方案--------------------package ccit01;
import java.util.Scanner;
 
public class Test {
 public static void main(String[] args){
 int n,i,j,h,k,m,Result;
 Scanner scanner = new Scanner(System.in);
 System.out.println("输入杨辉三角的行数:");
 n=scanner.nextInt();
 for(j=0;j<=n;j++)
 {
 for(h=1;h<=n-j;h++)  
  System.out.print(" ");
 for(i=0;i<=j;i++){
 Result=DiGui(j)/(DiGui(j-i)*DiGui(i));
 System.out.print(Result+" ");
 }
 System.out.println();
 }
 }
 static int DiGui(int k){
 if(k==1
------解决方案--------------------
k==0) return 1;
 else return k*DiGui(k-1);
 }
}
楼主代码写的比较乱 比如其实不必要声明k,直接用i 楼主方法的调用也有点混乱,方法传参还没有明白,实值和虚值变量声明不用一样。这和实值的值有关。所以只声明一个递归方法就行。