チェックモードでコードを実行すると、いくつかの不一致があるように見えるので、私は疑問に思っています。例えば:
List<List> getFactors(int n)
{
List<List> factors = [[1, n]];
double top = pow(n,1/2);
int test = 2;
while (test <= top)
{
if (n % test == 0)
factors.add([test, n ~/ test]);
test++;
}
return factors;
}
そのまま動作しますが、 を に変更するpow(n,1/2)
とn.pow(1/2)
、チェック モードでエラーが返されます。唯一の修正は、 の型をn
double に変更することです。どうしてこれなの?また、両者の一般的な違いを知っておくとよいでしょう。ありがとう!