Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語でN番目の項までの五胞体数を出力するプログラム


五胞体数(ペンタトープ数)とは

五胞体数とは、パスカルの三角形の各行に現れる5番目の数のことで、「1 4 6 4 1」という5項目の行から始まり、行を左から右へ、あるいは右から左へ読んだときに位置する数です。

五胞体数の最初のいくつかは次のとおりです。

1, 5, 15, 35, 70, 126, 210, 330, 495, 715, 1001, 1365

五胞体数は、規則的で離散的な幾何学パターンとして表現できる「図形数」の一種です。4次元の単体である五胞体に対応する数列であり、三角形数や四角錐数などをさらに一般化した概念といえます。

n番目の五胞体数を求める公式

n番目の五胞体数は、二項係数を用いて次の式で表されます。

Pn = C(n+3, 4) = n × (n+1) × (n+2) × (n+3) ÷ 24

アルゴリズム

  1. 五胞体数を求めたい項番号Nを、ユーザーからの入力として受け取ります。
  2. 公式「n(n+1)(n+2)(n+3)÷24」を使って、各項の五胞体数を計算します。
  3. for文で1項目からN項目まで繰り返し処理を行い、五胞体数を順番に出力します。

C言語によるサンプルコード

/* N番目の項までの五胞体数を出力するプログラム */
#include <stdio.h>

int main(void) {
    int n, n1, nthterm, nthterm1, i;

    /* 指定した項の五胞体数を求める */
    printf("\n 五胞体数を求めたい項番号を入力してください: ");
    scanf("%d", &n);

    nthterm = n * (n + 1) * (n + 2) * (n + 3) / 24;
    printf("その項の五胞体数は: %d\n\n", nthterm);

    /* 第1項から第N項までの五胞体数を出力する */
    printf("N番目の項までの五胞体数を表示します\n");
    printf(" 最終項となる項番号を入力してください: ");
    scanf("%d", &n1);
    printf("\n 五胞体数の一覧:\n\n");

    for (i = 1; i <= n1; i++) {
        nthterm1 = i * (i + 1) * (i + 2) * (i + 3) / 24;
        printf("%d\t", nthterm1);
    }
    printf("\n");

    return 0;
}

実行結果

たとえば最終項として「10」を入力すると、第1項から第10項までの五胞体数が次のように表示されます。

1    5    15    35    70    126    210    330    495    715

C言語でN番目の項までの五胞体数を出力するプログラム


  1. C言語で正方行列をZ字形に表示するプログラム

    プログラムの概要本記事では、C言語を使って正方行列の要素を「Z」の字形に沿って出力するプログラムを解説します。正方行列とは、行数と列数が等しい行列のことです。n行n列の行列は「n次の正方行列」と呼ばれ、2×2、3×3、4×4などの行列が該当します。Z字形出力のアルゴリズム行列の要素をZ字形で表示するには、次の3つの部分を順番に出力します。最上行(1行目):左端から右端までのすべての要素対角成分:右上から左下へ向かう斜めの要素(両端の角は除く)最下行(最終行):すべての要素これらを順につなげると、アルファベットの「Z」の形が完成します。3×3の行列の場合: a00 a01 a02

  2. Cプログラムで行列を対角パターンに沿って数値出力する方法

    この課題は、n×nの行列を対角パターンで出力することです。 例えば n が 3 の場合、対角パターンに従って行列を出力すると、次のような配置になります。 そして、実際の出力結果は以下の通りです。 実行例 Input: 3 Output: 1 2 4 3 5 7 6 8 9 Input: 4 Output: 1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16 考え方 一見すると、「数値 n を受け取り n×n の行列を生成し、それを対角方向に走査しながら別の行列へ値を格納する」というアプローチが思い浮かびます