黑马程序员技术交流社区
标题:
杨辉三角升级版
[打印本页]
作者:
kunsongjack
时间:
2015-10-27 13:22
标题:
杨辉三角升级版
package blog;
import java.util.Scanner;
public class Yanghuisj {
public static void main(String[] args) {
System.out.println("请在此输入一个要输出的行数:");
Scanner sc = new Scanner(System.in);
while(true){
int n = sc.nextInt();
if(n<0||n>30){
System.out.println("请输入一个大于0小于30的整数:");
}else{
yhShuchu(n);
sc.close();
break;
}
}
}
public static void yhShuchu(int n){
//根据要输出的行数算出最大的值,并判断其位数并准备空两个格
long spaceNum=returnMaxbit(n);
//输出每行每列及空格
for(int i=0;i<n;i++){
for(int j=0;j<spaceNum*(n-i)/2;j++){
System.out.print(" ");
}
for(int k=0;k<i+1;k++){
System.out.printf("%"+spaceNum+"d",shuchu(i,k));
}
System.out.println();
}
}
//负责获取最大数的位数,并加两个空格
private static int returnMaxbit(int lineList) {
Long b=shuchu(lineList,lineList/2);
String str=b.toString();
return str.length()+2;
}
//方法体迭代负责输出几行几列的数字
private static long shuchu(long i, long k) {
if(k==0||k==i){
return 1;
}else{
return shuchu(i-1,k-1)+shuchu(i-1,k);
}
}
}
复制代码
调试的结果为:
QQ截图20151027132200.png
(7.31 KB, 下载次数: 1)
下载附件
2015-10-27 13:22 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2