- 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);
- }
-
-
- }
- }
复制代码 调试的结果为:
|
|