【杭電oj】楊輝三角(配列数打表)
1821 ワード
楊輝三角
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 54099 Accepted Submission(s): 22480
Problem Description
中学時代に習った楊輝三角を覚えていますか.具体的な定義はここでは説明しません.以下の図を参照してください.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Input
入力データには複数のテストインスタンスが含まれ、各テストインスタンスの入力には正の整数n(1<=n<=30)のみが含まれ、出力する楊輝三角の層数を表す.
Output
各入力に対応して、対応する層数の楊輝三角を出力し、各層の整数間をスペースで区切り、各楊輝三角の後ろに空行を追加します.
Sample Input
Sample Output
Author
lcy
Source
C言語プログラミング練習(五)
楊輝三角の方法で配列数打表の方法を記憶する.
コードは次のとおりです.
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 54099 Accepted Submission(s): 22480
Problem Description
中学時代に習った楊輝三角を覚えていますか.具体的な定義はここでは説明しません.以下の図を参照してください.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Input
入力データには複数のテストインスタンスが含まれ、各テストインスタンスの入力には正の整数n(1<=n<=30)のみが含まれ、出力する楊輝三角の層数を表す.
Output
各入力に対応して、対応する層数の楊輝三角を出力し、各層の整数間をスペースで区切り、各楊輝三角の後ろに空行を追加します.
Sample Input
2 3
Sample Output
1
1 1
1
1 1
1 2 1
Author
lcy
Source
C言語プログラミング練習(五)
楊輝三角の方法で配列数打表の方法を記憶する.
コードは次のとおりです.
#include <cstdio>
int c[44][44];
void C()
{
c[0][0] = 0;
for (int i = 1 ; i <= 30 ; i++)
{
c[i][0] = 1;
c[i][i] = 1;
}
for (int i = 1 ; i <= 30 ; i++)
{
for (int j = 1 ; j < i ; j++)
c[i][j] = c[i-1][j] + c[i-1][j-1];
}
}
int main()
{
C();
// for (int i = 1 ; i <= 30 ; i++)
// {
// for (int j = 0 ; j <= i ; j++)
// printf ("%d ",c[i][j]);
// printf ("
");
// }
int n;
while (~scanf ("%d",&n))
{
if (n == 1)
{
printf ("1
");
continue;
}
printf ("1
");
for (int i = 1 ; i < n ; i++)
{
printf ("%d",c[i][0]);
for (int j = 1 ; j <= i ; j++)
{
printf (" %d",c[i][j]);
}
printf ("
");
}
printf ("
");
}
return 0;
}