pow メソッドなしで指数を求める

CBeginner
オンラインで実践に進む

はじめに

指数計算は、多くの数学的アプリケーションにおいて非常に一般的な要件です。C プログラミングでは、pow() 関数を使用して指数を計算することができます。ただし、場合によっては pow() 関数を使用せずに手動で数値の指数を求める必要がある場合もあります。この実験では、C プログラミングにおいて pow() 関数を使用せずに数値の指数を求める手順を学びます。

注:コーディングを練習し、gcc を使用してコンパイルおよび実行する方法を学ぶには、自分で ~/project/main.c ファイルを作成する必要があります。

cd ~/project
## main.c を作成する
touch main.c
## main.c をコンパイルする
gcc main.c -o main
## main を実行する
./main

変数を宣言する

まず、プログラムで使用する変数を宣言します。基数として整数を、指数値として整数を、結果を格納するために long long int 型の変数が必要になります(結果は非常に大きな数になる可能性があるため)。

#include<stdio.h>

int main()
{
    int n, exp;
    long long int value = 1;

    // コードの残りはここに記述します
}

ユーザー入力を取得する

次に、scanf() 関数を使用して、ユーザーから基数と指数値の入力値を取得します。

#include<stdio.h>

int main()
{
    int n, exp;
    long long int value = 1;

    printf("基数とその指数を入力してください:\n\n");
    scanf("%d%d",&n, &exp);

    // コードの残りはここに記述します
}

指数を計算する

次に、ループを使用して指数を計算します。このループは、ユーザーが入力した指数値と同じ回数だけ実行されます。最初の値は 1 で、ループの各反復で、基数を現在の値と乗算します。乗算の結果で現在の値を更新します。最後に、結果を表示します。

#include <stdio.h>

int main()
{
    int n, exp;
    long long int value = 1;

    printf("基数とその指数を入力してください:\n\n");
    scanf("%d%d",&n, &exp);

    for(int i=1; i<=exp; i++)
    {
        value = value * n;
    }

    printf("\n\n %d^%d = %lld\n\n", n, exp, value);

    return 0;
}

プログラムをテストする

これで、プログラムを実行して異なる基数と指数値を入力することで、プログラムをテストすることができます。プログラムが正しく動作している場合、各計算に対して正しい結果が表示されるはずです。

完全なコード

pow() 関数を使用せずに数の指数を求めるための完全なコードを以下に示します。

#include <stdio.h>

int main()
{
    int n, exp;
    long long int value = 1;

    printf("基数とその指数を入力してください:\n\n");
    scanf("%d%d",&n, &exp);

    for(int i=1; i<=exp; i++)
    {
        value = value * n;
    }

    printf("\n\n %d^%d = %lld\n\n", n, exp, value);

    return 0;
}

まとめ

この実験では、C 言語プログラミングにおいてpow()関数を使用せずに数の指数を求める方法を学びました。必要な変数を宣言し、ユーザー入力を取得し、ループを使って指数を計算しました。そして、結果をユーザーに表示しました。