3

これは、除数を出力してから、特定の数の除数の数を出力するための私のコードです。

ここで、5 と 8 の 2 つのテスト ケースを使用するとします。このコードは、カウント 5 を 2 として、8 を 6 として指定します (つまり、前のカウントを追加します)。

int count = 0;同じ出力を返すので宣言しても。

int count = 0function 内で宣言すると、別の問題が発生しますfactors

このコードは、すべてのケースで count を 0 としています。

#include<iostream>
using namespace std;
int count;
long long factors(long n, long f=1)
{


    if(n%f==0) {
        cout << f << endl;
        count++;
    }

    if(f==n) {
        return 0;
    }

    factors(n,f+1);

    return count;

}

int main()
{
    int n;
    int t;
    cin >> t;
    while(t--)
    {
        cin >> n;
        cout << factors(n) << endl;
    }


    return 0;
}
4

3 に答える 3