1189 - C语言7.13
时间限制 : 1 秒
内存限制 : 32 MB
输出杨辉三角形的前n行。
题目输入
第一行有一个正整数n,保证n不超过20。
题目输出
共有n行,从第1行至第n行,每行输出与行数相等个数的整数,整数后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
6
输出格式
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
C语言解答
#include <stdio.h> int main() { int dat[20][20]; int n, i, j; scanf("%d", &n); for (i = 0;i < n;i++) { dat[i][0] = dat[i][i] = 1; for (j = 0;j + 1 < i;j++) dat[i][j + 1] = dat[i - 1][j] + dat[i - 1][j + 1]; } for (i = 0;i < n;i++) { for (j = 0;j <= i;j++) printf("%d ", dat[i][j]); puts(""); } return 0; }
C++解答
#include <stdio.h> int main() { int dat[20][20]; int n, i, j; scanf("%d", &n); for (i = 0;i < n;i++) { dat[i][0] = dat[i][i] = 1; for (j = 0;j + 1 < i;j++) dat[i][j + 1] = dat[i - 1][j] + dat[i - 1][j + 1]; } for (i = 0;i < n;i++) { for (j = 0;j <= i;j++) printf("%d ", dat[i][j]); puts(""); } return 0; }
Java解答
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in =new Scanner(System.in); int n=in.nextInt(); int[][] a=new int[n][n]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if (j<i){ a[i][j]=1; if(j==0){ a[i][j]=1; } else a[i][j]=a[i-1][j-1]+a[i-1][j]; } else{ a[i][j]=1; } } for(int i=0;i<n;i++) { for(int j=0;j<i;j++){ System.out.print(a[i][j]+" "); } System.out.println(a[i][i]+" "); } } }
Python解答
l = input() a = [[-1 for i in range(l)] for i in range(l)] for i in range(l): print 1, a[i][0] = a[i][i] = 1 for j in range(1, i): a[i][j] = a[i - 1][j - 1] + a[i - 1][j] print a[i][j], if i > 0: print 1, print ""