2016-11-07 10 views
-6

これにはどのように再帰的な手順を記述しますか? Nは整数であり、C <です。手順はCの桁数Nを返さなければなりません。N数字Cの桁数を返す再帰プロシージャを記述しますか?

+3

あなたが最初に何かをしようとしていない場合は、質問をご遠慮ください。これは、要件を削除してコード化するサイトではありません。 –

+0

これはHWのように思えますが、これはさらに悪いことです。 – kabanus

+0

@kabanusそれはhwではない、私はテストのために練習していると私は立ち往生した、私は知っているすべてを試してみました..私はプログラミングでは新しく、私はここでaccを作成しました。申し訳ありませんが、私は適切に質問する方法を理解していない場合。私はコード全体を必要としませんでした、ちょっとした助けになりました –

答えて

4

完全な回答は得られませんが、私はあなたの指向を助けるでしょう。

再帰関数を書くには、2つの部分を考える必要があります。

  1. ベースケース - あなたが扱うことができる最も簡単なケースは何ですか?この問題は、Nが1桁の場合に発生します。

  2. 再帰的ケース - N桁の数字を処理できるとします。 1桁の関数とN桁の関数を使って、N + 1桁の数値をどのように解くことができますか?答えは、1桁を切り刻むことです。その桁を1桁のチェッカーに、もう1桁の数字をN桁のチェッカーに送ります。 (「N桁チェッカーは、」あなたが書いている非常に機能です。)

    擬似コードで

は、再帰関数は通常、そのように構成されています

def recursive_function(n): 
    if is_base_case: 
     return base_case(n) 
    else: 
     return combine(
      recursive_function(smaller(n)), 
      base_case(bite_sized_chunk(n)) 
     ) 

あなたの仕事をしています記入:

  • is_base_case試験:nは1桁ですか?
  • base_case関数は、1桁の数字のみを処理します。
  • smaller関数の最後の桁を除いて、すべてがnになります。 nが1234の場合、smaller(n)は123.
  • bite_sized_chunkの関数で、最後の数字はnです。 nが1234の場合、bite_sized_chunkは4です。
  • combine関数は、ベースケースと再帰的解答を組み合わせています。

(これらの機能のいずれもが、実際の別々の機能である必要はありません。彼らは、インライン化することができます。)

関連する問題