-1

整数と数字 d を受け取る再帰的メソッドを書かなければならない演習があります。このメソッドは、d より大きい数字のみで構成される新しい数値を返す必要があります。

たとえば、数値 19473 と数字 3 の場合、返される数値は 947 になります。

これまでのところ、私のコードは進歩していないので、お見せできるものは何もありません。メソッドのシグネチャ:

public static int filter(int n, int d)

どんな助けでも素晴らしいでしょう、

ありがとうございました。

4

2 に答える 2

1

これがあなたの答えです。

int filter(int n, int d) {
    if (n >= 0 && d >= 0) {    // n and d non-negetive

        if (n == 0) {   // terminating criteria
            return 0;
        } else {
            int currDigit = n % 10;
            if (n % 10 > d) {
                return filter(n / 10, d) * 10 + currDigit; //gathering digits greater thand d
            } else {
                return filter(n / 10, d);  // ignoring digits less than or equal d
            }
        }

    }
    return -1;
}

あなたが知っておくべきことの1つは、コーディングが初めてで、優れたコーダーになりたい場合です! あなたへの私のアドバイスは、コーディングの問題について考える機会を脳から奪わないでください! 常に自分の頭脳を信頼してください。我慢してください。もう一度試してみてください。

乾杯とハッピーコーディング!

于 2013-05-10T04:46:54.363 に答える