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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
ゲームプログラミングC/C++、SR...
-
C# 再帰よるスタックオーバー...
-
「FFTW」についての質問です。
-
アルゴリズムについて
-
BCDについて
-
乗り換え(電車)サイトの考え方
-
VB2010にて分数表示(約...
-
最短経路問題を1つ算出するスク...
-
C言語初心者の質問失礼いたしま...
-
リーグ戦日程表作成アルゴリズ...
-
偏りのある乱数のアルゴリズム
-
65536は2の何乗なのでしょうか?
-
Bluestacks内でダウンロードし...
-
CとFORTRANの計算速度はどちら...
-
インテル マネジメント エンジ...
-
Excelで4096点以上のFFTの方法
-
VBAで関数をつくる
-
Linux Cからのメール送信
-
マルチコアCPUをシングル化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
SNSをやらない理由ってなんです...
-
アルゴリズムとプロトコールの違い
-
[ EXCEL VBA ] 図形を読み込む...
-
BCDについて
-
期間重複チェックがわかりません
-
最大公約数を求めたい!
-
c言語で画像から文字を認識 キ...
-
C♯で電卓を作成しています。演...
-
多変数関数の最小値を求めるプ...
-
画像から文字を認識してテキス...
-
ハッシュアルゴリズム
-
偏りのある乱数のアルゴリズム
-
乗換案内の作り方が知りたいです。
-
JPEG圧縮で8×8に分割する理由に...
-
書籍のソースコードを別言語に...
-
グループを均等に分けるには?...
-
複数の点を最短距離で全て繋ぐ...
-
gooという検索エンジンの後にGo...
-
シードを考慮したトーナメント...
おすすめ情報