pow() 関数は非常に奇妙な出力を出しています。
さまざまな組み合わせを試しました:
#include<stdio.h>
#include<math.h>
int main()
{
int d=1;
long long n1,n2;
while(d<10)
{
n1=pow(10,d);
n2=pow(10,d);
d++;
printf("%lld %lld\n",n1,n2);
}
}
これは間違った出力、つまり 100 ではなく 99 などを出力します。
ここで、変数の 1 つを削除すると、ans. 正しい。d の代わりに定数を使用する場合、ans は正しいです。n1 と n2 を double とすれば、ans は正しいです。
そのため、2 つの pow() 関数を使用して、変数をべき乗として持ち、型を整数としてキャストすると、出力が悪くなります。なぜこの奇妙な動作??