编写程序,打印如下的杨辉三角形:11 11 2 11 3 3 11 4 6 4 1c++
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 19:46:12
![编写程序,打印如下的杨辉三角形:11 11 2 11 3 3 11 4 6 4 1c++](/uploads/image/z/1581625-1-5.jpg?t=%E7%BC%96%E5%86%99%E7%A8%8B%E5%BA%8F%2C%E6%89%93%E5%8D%B0%E5%A6%82%E4%B8%8B%E7%9A%84%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92%E5%BD%A2%EF%BC%9A11+11+2+11+3+3+11+4+6+4+1c%2B%2B)
编写程序,打印如下的杨辉三角形:11 11 2 11 3 3 11 4 6 4 1c++
编写程序,打印如下的杨辉三角形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
c++
编写程序,打印如下的杨辉三角形:11 11 2 11 3 3 11 4 6 4 1c++
public static void main(String[] args) {
textYH yang = new textYH();
yang.printYanghuiTriangle(5);
}
/**
* 生成指定行数的杨辉三角形
*
* @param lines 杨辉三角形的行数
*/
public void printYanghuiTriangle(int lines) {
if(lines < 1) {
throw new IllegalArgumentException("lines must be great than 0.");
}
if(lines > 30) {
throw new IllegalArgumentException("lines is too big.");
}
int[] line = new int[lines];
int maxLen = getMaxLen(lines);
for(int i = 0; i < lines; i++) {
line[0] = line[i] = 1;
for(int j = 1,k = i / 2,pre = line[0]; j 0 start :1L;
while(num > start) {
result *= num--;
}
return result;
}
/**
* 根据指定数字计算数字的长度
* @param num 数字
* @return 数字的长度
*/
private int getLength(long num) {
int len = 0;
while(num > 0L) {
num /= 10L;
len++;
}
return len;
}
private void printLine(int[] yanghui,int line,int width) {
printSpaces((yanghui.length - line) * width);
for(int i = 0; i < line; i++) {
if(i > 0) {
printSpaces(width);
}
printSpaces(width - getLength(yanghui[i]));
System.out.print(yanghui[i]);
}
System.out.println();
if(width > 1) {
System.out.println();
}
}
private void printSpaces(int spaceCount) {
for(int i = 0; i < spaceCount; i++) {
System.out.print(" ");
}
}