べき乗を求めるプログラム。
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のほうが好き。