回答編集履歴

1 unsigned の使いどころを間違った

PingHermit

PingHermit score 70

2018/12/06 08:04  投稿

こんなんで。
unsigned の範囲を超えた時とかは考慮していません。
int の範囲を超えた時とかは考慮していません。
計算のコードもと書いておられたので、変えてみました。
入力は適当に作ってください。
```
#include <stdio.h>
unsigned int power(int x, int n)
int power(int x, unsigned int n)
{
   unsigned ret = 1;
   int ret = 1;
   for (; n; n >>= 1, x *= x)
       if (n & 1) ret *= x;
   return ret;
}
int main(void)
{
   printf("%u\n%u\n", power(3, 4), power(18, 7));
   printf("%i\n%i\n", power(3, 4), power(18, 7));
   return 0;
}
コード
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る