級数の最初のN項(0.25、0.5、0.75…)を分数形式で出力するCプログラム
本記事では、級数(0、¼、½、¾、1 …)の最初の N 項を分数形式で出力する C プログラムを紹介します。級数を出力する範囲を示す項数 N を入力すると、各項が約分された形で順番に表示されます。
入力:N = 5 出力:0 ¼ ½ ¾ 1
プログラムの考え方
この級数は一般に「i / 4」(i = 0, 1, 2, …)という形で表せます。各項を最もシンプルな形で表示するために、分子 i の性質に応じて次のように分類します。
- i が 4 の倍数の場合:完全に約分できるため、整数として表示(例:0、1)
- i が 2 の倍数の場合:分母 2 に約分して表示(例:1/2)
- i が奇数の場合:分母 4 のまま表示(例:1/4、3/4)
アルゴリズム
開始
ステップ1 → 変数 num、den、i、n を int 型として宣言する
ステップ2 → n に項数を入力する
ステップ3 → i = 0 から i < n の間、i を 1 ずつ増やしながら繰り返す
外側の IF:i % 2 == 0 の場合(分子が偶数)
内側の IF:i % 4 == 0 の場合
num = i / 4、den = 0 を設定
内側の IF 終了
Else(4 で割り切れない偶数の場合)
num = i / 2、den = 2 を設定
End Else
End Outer IF
Else(奇数の場合)
num = i、den = 4 を設定
End Else
IF den != 0 の場合
num と den を分数形式で出力
End IF
Else
num を整数として出力
End Else
ステップ4 → For ループを終了する
終了
サンプルコード
#include <stdio.h>
int main(int argc, char const *argv[]) {
int num, den;
int i, n;
printf("級数の上限となる項数を入力してください\n");
scanf("%d", &n); // 級数は 0 からここまで出力される
for (i = 0; i < n; i++) {
if (i%2==0) { // 分子が偶数かどうかを判定
if(i%4==0) { // 分子が 4 で割り切れる場合は約分する
num = i/4;
den = 0;
}
else { // 4 で割り切れない場合は分母 2 として設定
num = i/2;
den = 2;
}
}
else { // 奇数の場合は分母 4 のまま設定
num = i;
den = 4;
}
if (den != 0) { // 分母が 0 でなければ分数形式で出力
printf("%d/%d\n",num, den);
}
else // それ以外は整数として出力
printf("%d\n", num);
}
return 0;
}
実行結果
上記のプログラムをコンパイルして実行すると、次のような出力が得られます。
級数の上限となる項数を入力してください 5 0 1/4 1/2 3/4 1
-
PythonではじめるCGIプログラミング入門:初めてのCGIスクリプトの作成方法
ここでは、hello.pyという名前のCGIスクリプトへリンクするシンプルな例を紹介します。このファイルは /var/www/cgi-bin ディレクトリに配置されているものとします。CGIプログラムを実行する前に、UNIXコマンドのchmod 755 hello.pyを実行して、ファイルに実行権限を付与しておく必要がある点に注意してください。 サンプルコード #!/usr/bin/python print Content-type:text/html\r\n\r\n print <html> print <head> print <title>Hello
-
【Python入門】fractionsモジュールで分数を正確に扱う方法
Pythonのfractionsモジュールは、有理数(分数)の演算をサポートする標準ライブラリです。このモジュールを利用すると、整数・浮動小数点数・Decimal型・さらには文字列など、さまざまな数値から分数(Fraction)オブジェクトを作成できます。 Fractionインスタンスは、分子と分母のペアとなる2つの整数で構成されます。 Fractionクラスの基本 fractions.Fractionクラスを使うと、Fractionオブジェクトを作成できます。このクラスは分子(numerator)と分母(denominator)を受け取り、デフォルト値はそれぞれ0と1です。分母に0を指定し