PASC - Tam giác Pascal
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift
Tam giác Pascal kích thước n là tam giác gồm n dòng được định nghĩa như sau:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Tại dòng thứ i:
a[i][0] = a[i][i] = 1
a[i][j] = a[i-1][j-1] + a[i-1][j]
Bạn hãy viết chương trình in ra một tam giác Pascal
Input
Là số nguyên n (1 <= n <= 50)
Output
Gồm n dòng của tam giác Pascal tương ứng. Trên dòng thứ i gồm i số nguyên, mỗi số cách nhau một khoảng trắng.
Sample
Input #1
5
Output #1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Input #2
3
Output #2
1
1 1
1 2 1
Problem source: NTUCoder.net
Bình luận
include <bits/stdc++.h>
using namespace std;
long long MulDiv(long long x, long long y, long long z) { long long m = x, n = z; while (n != 0) { long long r = m % n; m = n; n = r; } x /= m; z /= m; return x * (y / z); }
void PrintALine(int n) { long long c = 1; for (int k = 0; k <= n; k++) { cout << c; if (k < n) cout << " "; c = MulDiv(c, n - k, k + 1); } cout << "\n"; }
int main() { int m; cin >> m; for (int n = 0; n < m; n++) PrintALine(n); return 0; }
Unofficial solution: