• 締切済み

アルゴリズムが分からない。誰か助けて。。。

今、授業でアルゴリズムを習っているんですけど、どうやって解けばいいのか分からないです。問題は「キーボードから2つの数値を入力し、大きい数から小さい数を減算した結果を画面表示する。」です。誰か教えてください。出来れば解くコツとかあれば教えてください。

みんなの回答

  • USB99
  • ベストアンサー率53% (2222/4131)
回答No.5

アルゴリズムは一つではありません。条件分岐でもいいですが、簡単なのは最初の数から二つ目の数を引いて絶対値をとればいいだけです。 i=input('input first number') j=input('input 2nd number') output(ABS(i-j)) 要するに、問題の本質を捉えるのが大事です。

noname#58606
noname#58606
回答No.4

Delphi(←言語の名前)だと、ちと面倒ですが。 配列に入れてからソート、 c[0] = a; c[1] = b; で、大きい順にソート。 rsort(c); d = c[0] - c[1]; って手もありますね。PHPなんかだと、簡単かも。 まぁ、一度配列を作る処理が、果てしなく、無駄な気もしますが。 お風呂で考えつきました。^^; 私は、パソコンの前だと、うまく考えられないので、分からない事は、メモにとりあえず、書きます。 問題は、最大の問題はaとbでどちらが大きいかが分からない事です。 では、aかbがどちらが大きいか、分かれば、問題がなくなりますよね? 条件は、 ・aとbが、等しい場合。(厳密に言えば。まぁ、結果としてa-bもb-aも同じになるけど。 ・aとbでは、aの方が大きい場合。 ・aとbでは、bの方が大きい場合。 これを、if文で判断して、それぞれで、条件を分ければ、いいだけです。 これがこのアルゴリズムの初歩だと、思いますよ。 出力の方法や、変数の入れ方は、言語によって違うので、はしょりました。 分からなくなったら、とりあえず、紙に書くことを、薦めます。

noname#58606
noname#58606
回答No.3

Delphiだと、min,max関数ってのがありますよ。 minは、二つの数から小さい方を。 function tikkoihou(a,b){ c = a min b; Result := c; } funciton okkiihou(a,b){ c = a max b; Result := c; } okkihou(a,b) - tikkoihou(a,b); って感じで。 もちろん、Delphiでも、動きません。 あくまで感じでって事で。^^; お使いの言語では、どうでしょうか? この手の例題が出るって事は、JAVAかな? そもそも、関数なんて利用しなくてもif文でも十分にいけそうですが。 if a < b then c = b - a; else c = a - b; で。 っていうか、大きいものから、小さい物を引くって事は、つまり距離なので、そのまま引いて、絶対値にしちゃえば、いける気も。 c = abs( (a) - (b) ); 微妙な間違いは、スルーで。 重大な間違いは、書いてくださるとあいがたいです。^^;

noname#77845
noname#77845
回答No.2

#1です。 「大きい数から小さい数を減算した結果を画面表示する。」 でしたね。 キーボードから数値を入力する。 変数1に保存する。 キーボードから数値を入力する。 変数2に保存する。 変数1と変数2を比較する。 変数1<変数2なら、 //変数1と変数2を入れ替える。 ・変数1の内容を変数3に代入する。 ・変数2の内容を変数1に代入する。 ・変数3の内容を変数2に代入する。 変数1-変数2を画面表示する。

noname#77845
noname#77845
回答No.1

キーボードから数値を入力する。 変数1に保存する。 キーボードから数値を入力する。 変数2に保存する。 変数1と変数2を比較する。 大きい方を画面表示する。 だけです。 どこが判らないのでしょうか?

関連するQ&A