我得到了Pascal三角形的输出,数字是正确的,除格式之外的所有内容都必须在输出中正确(即居中)。我怎样才能做到这一点?我们还没有学过任何'System.out.format'类型编码,我见过的任何解决方案都涉及到。
计划1
public class Pascal
{
private int r;
public Pascal(int numRows)
{
r=numRows;
}
public static int recrPascal(int row, int col)
{
int val1, val2, result = 0;
if (row == 0 || col == 0 || row == col + 1)
{
return 1;
}
val1 = recrPascal(row - 1, col - 1);
val2 = recrPascal(row - 1, col);
return val1 + val2;
}
public static void printPascalRecursion(int maxRows)
{
for (int i = 0; i <= maxRows; i++)
{
for (int j = 0; j < i; j++)
{
System.out.print(recrPascal(i, j) + " ");
}
System.out.println();
}
}
}
计划2
import java.util.*;
public class PascalDriver
{
public static void main(String [] args)
{
Scanner kbReader = new Scanner(System.in);
System.out.print("Enter value for n: ");
int n = kbReader.nextInt();
Pascal a = new Pascal(n);
a.printPascalRecursion(n);
}
}
答案 0 :(得分:1)
所以你希望输出像
$$$ 1
$$ 1 1
$ 1 2 1
依旧......
将$视为空格。
添加一个for循环,将MAX中没有空格(行数减少)减少到零 in&#34; printPascalRecursion(int maxRows)&#34;。
希望你得到它..
答案 1 :(得分:1)
将此方法添加到您的班级
public static void print(char c,int no){
if(no<1)
return;
System.out.print(c);
print(c,no-1);
}
当你循环第一个循环时,用参数('',row-i)调用这个方法 这至少会让它有点整洁。试验间距以获得更好的效果。
for (int i = 0; i <= maxRows; i++)
{
print(' ',row-i);
for (int j = 0; j < i; j++)
{
System.out.print(recrPascal(i, j) + " ");
}
System.out.println();
}
同时增加
中的“”System.out.print(recrPascal(i, j) + " ");
让它看起来更好