杨辉三角十二行斜行个数的和(用裴波那契数计算)
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 05:53:13
杨辉三角十二行斜行个数的和(用裴波那契数计算)
杨辉三角十二行斜行个数的和(用裴波那契数计算)
杨辉三角十二行斜行个数的和(用裴波那契数计算)
/* 抱歉,没看懂你的问题是什么意思(杨辉三角斜行上不都是"1"吗...囧),不过我大概做一下吧 */
/* 首先打印十二行的杨辉三角,程序如下 */
#include <stdio.h>
#define N 12
int main(void)
{
int a[N][N] = {0}, i, j;
for (i = 0; i < N; i++)
a[i][0] = 1;
for (i = 1; i < N; i++)
for (j = 1; j <= i; j++)
a[i][j] = a[i-1][j-1] + a[i-1][j];
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
if (a[i][j] != 0)
printf("%6d",a[i][j]);
putchar('\n');
}
return 0;
}
/* 然后通过对从第二列起每列元素进行下移可得到变换后的方阵,程序如下 */
#include <stdio.h>
#define N 12
int main(void)
{
int a[2 * N - 1][N] = {0}, i, j, p, q, t;
for (i = 0; i < N; i++)
a[i][0] = 1;
for (i = 1; i < N; i++)
for (j = 1; j <= i; j++)
a[i][j] = a[i-1][j-1] + a[i-1][j];
for (i = 1, p = 0; i < N; i++, p++)
for (j = N + p, q = 1; j >= i + p; j--, q++) {
t = a[j][i];
a[j][i] = a[N - q][i];
a[N - q][i] = t;
}
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
if (a[i][j] != 0)
printf("%6d",a[i][j]);
else printf(" "); /* 6 blanks */
putchar('\n');
}
getchar();
return 0;
}
/* 没看懂问题,只是把隐藏在杨辉三角形中的斐波那契额数列发觉了出来.*/