• ベストアンサー

JAVAのプログラミングです

JAVAのプログラミングを教えてください 整数Xの十進表記を1桁右に循環的にシフトした(つまり、最右桁の数字を最左桁の位置に置く)数が、Xの2倍であるような整数Xのうち、最小のものを求めよ。 これをJAVAでプログラミングせよ。とのことです

質問者が選んだベストアンサー

  • ベストアンサー
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

関数f(X)を次のように定義 1)Xの常用対数Yを求める 2)Xを10で割った余りAを求める 3)Xを10で割った商Bを求める←少数以下を切捨てた整数値 f(X) = A×10の(Y+1)乗 + B Xの最小値は11以上であるはず(でないと循環的にシフト出来ない)ので X=11から1づつ加算して f(X) = X×2 が成立するまで繰り返せばよい。

zogphfydvq
質問者

お礼

丁寧にアルゴリズムをお教えいただいて本当にありがとうございます。おかげで初心者の僕でも一応書けました。

その他の回答 (1)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

とのことです、のでそれをプログラミングすればよろしい。 方法はいくつかあります。 頑張って自分で考えて、わからない個所が来たらここで質問をする。 そのときは、どこまでは理解できてどこで詰まっているか、きっちりと説明を書いてください。 あるいは、自分で作ったものがなぜ正しく動かないか自分なりの考えを述べて、間違った個所を指摘して貰うという方法でも良いです。 あるいは、楽な方法を取りたければ、ソフト開発会社に発注してください。

関連するQ&A