3

チェックモードでコードを実行すると、いくつかの不一致があるように見えるので、私は疑問に思っています。例えば:

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)、チェック モードでエラーが返されます。唯一の修正は、 の型をndouble に変更することです。どうしてこれなの?また、両者の一般的な違いを知っておくとよいでしょう。ありがとう!

4

1 に答える 1