べき乗を求めるプログラム-書き方2通り

プログラミング

べき乗を求めるプログラム。

pow関数の中身を手計算でやったようなもの。

コード全体

#include <iostream>

double power(double x ,int n) {
    int i;
    double tmp = 1.0;
    /*for (i = 1; i <= n; i++) {
        tmp *= x;
    }*/

    while(n-- > 0)
    {
        tmp *= x;       //つまりnが1まで計算。(0が入ってきたら、何も計算しない。)
        printf("%d\n", n);
    }
//でも計算可能。

    return tmp;
}

int main()
{
    double a;
    int b;

    printf("aのb乗を求めます。\n");
    printf("実数a:"); scanf_s("%lf", &a);
    printf("整数b:"); scanf_s("%d", &b);

    printf("%.2fの%d乗は%.2fです。\n", a, b, power(a, b));


    return 0;

}

やり方二通り

やり方1:for文を用いる

for (i = 1; i <= n; i++) {
        tmp *= x;
    }

やり方2:while文を用いる

while(n-- > 0)
    {
        tmp *= x;       //つまりnが1まで計算。(0が入ってきたら、何も計算しない。)
        printf("%d\n", n);
    }

教科書では「nの最終値は“-1”となります」っていってたけど表示させたらちゃんと0だったね。

n–が(後で引く)だから0が入ってきたときにwhileループの中には入れないから-1にはならんかった、のかな。

まとめ

forのほうが好き。

タイトルとURLをコピーしました