用C语言输出杨辉三角?
以下是使用C语言输出杨辉三角的示例代码:
c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入要输出的行数:");
scanf("%d", &n);
// 输出杨辉三角
for (i = 0; i < n; i++) {
// 输出空格
for (j = 0; j < n - i - 1; j++) {
printf(" ");
}
// 输出杨辉三角的每一行
for (j = 0; j <= i; j++) {
if (j == 0 i == 0) {
printf("%d", 1);
} else {
printf("%d", (int)((double)a[i-1][j-1] * (double)(i-j+1) / (double)j));
}
if (j < i) {
printf(" ");
}
}
printf("\n");
}
return 0;
}
在上面的代码中,我们首先使用scanf函数从用户那里获取要输出的行数n。
然后,我们使用两个嵌套的for循环来输出杨辉三角。
外部for循环用于控制输出的行数,内部第一个for循环用于输出每一行前面的空格,以确保杨辉三角的形状正确。内部第二个for循环用于输出每一行的元素。
在输出元素时,我们使用了杨辉三角的递推公式,即a[i][j] = a[i-1][j-1] * (i-j+1) / j。如果j或i为0,则元素为。我们还使用了一个if语句来输出元素之间的空格,以确保每一行的元素之间有正确的间距。
最后,我们在每一行的末尾输出一个换行符,以确保下一行输出在新的一行上。
上述代码中没有声明数组a,而是在计算元素时直接使用了递推公式。如果需要重复使用杨辉三角,可以将数组a声明为全局变量或传递给函数,以避免重复计算。
杨辉三角是一个很有趣的数学问题,我们可以用C语言很容易地输出它。我们可以通过一个二维数组来存储杨辉三角,这个数组的大小可以在代码中指定。
然后我们可以使用两个for循环来按行打印杨辉三角,具体规则是第i行有i个数,第一和最后一个数为1,其他数的值为上一行相邻两数之和。通过这个方法,我们可以输出任意大小的杨辉三角。
java编程打印出杨辉三角形?
package mytest;
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
System.out.print("请输入杨辉三角形的行数:");
Scanner scanner = new Scanner(System.in);
int rows = scanner.nextInt();
//设置杨辉三角的行数
//int rows = 10;
for(int i =0;i<rows;i++) {
int number = 1;
//打印空格字符串
System.out.format("%"+(rows-i)*2+"s","");
for(int j=0;j<=i;j++) {
System.out.format("%4d",number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
}
}
还没有评论,来说两句吧...