
No.2ベストアンサー
- 回答日時:
初歩的なアルゴリズムの学習ですね^^
まず、3桁の数字をabcと表すとその二乗は
(a*100 + b*10 +c)^2
=a*a*10000 + 2*a*b*1000 + (2*a*c + b*b)*100 + 2*b*c*10 + c*c
となります。
>3桁の整数で二乗すると下3桁がもとの数になるものをすべて求めなさい。
とのことなので、
(2*a*c + b*b)*100 + 2*b*c*10 + c*c
の部分だけを検討すれば良いことが判ります。
まずcについて式を検討すると、数式から下位一桁は
c*c mod 10 = c
とならなければならないので、cの数値は 0, 1, 5, 6 の4つしか無いことが判ります
またc=0については0になるのは自明なので計算する必要はありません。
次にbについて検討すると
(2*b*c*10 + c*c ) mod 100 = b*10 + c
とならなければなりません。cの値は4つですがc=0は式から、c=1,5,6のみ検討すれば良いことは自明です。またb=0については、c=0になるのが自明ですからこれも計算の必要がありません。
c=1の場合
(20*b + 1) mod 100 = b*10 + 1
2*b mod 10 = b
となり、bは存在しません。従って、最初のcのリストから1を削除します。
c=5の場合
(100*b + 25) mod 100 = b*10 + 5
(10*b + 2) mod 10 = b
b=2となります。
c=6の場合
(120*b + 36) mod 10 = b*10 + 6
12*b + 3 mod 10 = b
b=7となります。
すなわち、下位2桁は25と76のときのみ成立することが判ります。
最後にaを求めますが、a25とa76の18通りの組み合わせを計算すれば良いことになります。
ここから先は課題なので自分で考えてくださいね。
つまりアルゴリズムとしては、1桁めから数字の組み合わせの候補を絞っていけばよいといことです。
以上の考え方でプログラムを組んでみてください。
No.5
- 回答日時:
質問者ではありません
No.2さん
プログラムという便利なのを知っていると
私は
力任せにすぐ for文などでやろうとしていましたが
紹介されたアルゴリズムを読んで
目からうろこです
ありがとうございました
No.4
- 回答日時:
求める3桁の整数をxとし、それを画面に表示するだけだとします。
xを100から999まで動かして、xと2乗の下3桁を比較すればいいだけです。
for ( x=100; x<1000; x++ )
if ( x == xの2乗の下3桁 )
printf( "x=%d (2乗は%7d)\n", x, x*x );
※半角スペースでは全部左詰めになっちゃったため、全角スペースを使っています。
上をコピーして貼り付けても、エラーになりますよ。
でいいのではないでしょうか?
xの2乗の下3桁は、ものすごぉ~く簡単に求められます。
課題の内容からすると、この部分を考えさせるためだと思いますので、答えは控えます。
「アドバイス」だけといたします。
課題の内容がこれであるということは、その2乗の下3桁を求めるための手段は習っていると思います。
仮にそうでないとしても、どうすればそれが求められるか、を考えることが大切です。
プログラムは、事象をいかにして数学的に求めるか、です。
No1さんが答えておられますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
プログラミングをしたいのです...
-
一般的な解法を用いないで魔法...
-
グループを均等に分けるには?...
-
アルゴリズムとプロトコールの違い
-
ハノイの塔のさいきアルゴリズ...
-
65536は2の何乗なのでしょうか?
-
あるプログラムのコマンドライ...
-
プログラミングについて。
-
ドロップダウンリストの文字を...
-
Bluestacks内でダウンロードし...
-
ニュートン法で解が収束しない
-
Excelで4096点以上のFFTの方法
-
C++でアボート(Abort)で処理が...
-
変数の値が勝手に変化する原因
-
OS入ってる機器のソフト・アプ...
-
C言語 バッファについて。
-
インテル マネジメント エンジ...
-
COBOLのピリオド
-
Delphiの逆コンパイル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
アルゴリズムとプロトコールの違い
-
期間重複チェックがわかりません
-
グループを均等に分けるには?...
-
BCDについて
-
シミュレーテッドアニーリング...
-
[ EXCEL VBA ] 図形を読み込む...
-
関数がどうしても分かりません
-
アルゴリズム フェルナンデス...
-
アルゴリズムについて(ちょい...
-
basicプログラムです。
-
乗換案内の作り方が知りたいです。
-
フローチャート等を説明したHP
-
動画で間違ったこと言っている
-
パスワードつきZIPの暗号化アル...
-
暗号化アルゴリズム
-
5人のテストの点数を入力すると...
-
ハノイの塔のさいきアルゴリズ...
-
ベイチ・カルノー図以外のとき方。
-
gooという検索エンジンの後にGo...
おすすめ情報