• ベストアンサー

アルゴリズムに詳しい方、本当にお願いします

変数、代入『←』、判定『≦』、和演算『+』、積演算『×』を使い、1から10までの整数の積を求めるアルゴリズムを作成しなさい。という問題がいまいち分かりません。作成例は画像のように手順4まで中でつくれ、というものです。okwaveの回答者さんたちには大変お世話になっています。いつもありがとうございます。お願いいたします。

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

エクセルで 作成例の、結果を エミュレートした、ものを 作りました https://1drv.ms/x/s!AjviygfJDgV_1QE1827VmJP5LOvR ご覧、頂ければ 判りますが デタラメです ので 此の、例は 忘れて、ください あと、 有料講座なら 詐欺で、訴えて 良い、レベルです ご考慮、ください 例の、検証から して、みましょう       n  i      不定 不定 n←0 i←1  0  1 n+1 i+1  1  2 n+1 i+1  2  3 n+1 i+1  3  4 n+1 i+1  4  5 n+1 i+1  6  7    (中略) n+1 i+1  48 49 n+1 i+1  49 50 n+1 i+1  50 51 終了 と、まあ 1~50の、総和が 50や、51に、 等は、なりません から 誤りだ と、判ります 正しくは       n  i      不定 不定 n←0 i←1 0  1 n+i   i+1 1  2 n+i   i+1 3  3 n+i   i+1 6  4 n+i   i+1 10  5 n+i   i+1 15  6     (中略) n+i   i+1 1128 48 n+i   i+1 1176 49 n+i   i+1 1225 50 n+i   i+1 1275 51 終了 ですね 詳細の、経過は エクセルシートを ご覧、ください 所で ステップ数の、指定が 無いなら ループさせる、必要は ありません iを、1と し 其の後 +1、しまくって 10まで.増やす すると iは、1~10へと 合間無く、変化します 其の、各々の 全てを 中間値を、取りつつ かけて、いけば 良い の、ですよね? そうですね~ まぁ、仮に 中間値は nに、でも 保存すれば、良い で、しょう 此処で、問題 なのは 最初の、値 ですが 素の、値 と、言いますか 足し算では、0、 かけ算では、1、 ですね どういう事か と、いうと かけ算で 初期値を、0に して、しまうと 其の、後 何を、掛けても 0の、ままに なり 希望の、動作結果に なりません 他方で 1だと 上手く、行きます では やって、みましょう 少し、丁寧にね     n    i n←1  1   不定 l←1   1    1 n ←n×i 1    1 i←i+1  1    2 n ←n×i 2    2 i←i+1  2    3 n ←n×i 6    3 i←i+1  6    4 n ←n×i 24    4 i←i+1  24    5 n ←n×i 120   5 i←i+1  120   6 n ←n×i 720   6 i←i+1  720   7 n ←n×i 5040  7 i←i+1  5040  8 n ←n×i 40320  8 i←i+1  40320  9 n ←n×i 362880 9 i←i+1  362880 10 n ←n×i 3628800 10 i←i+1  3628800 終了 さてさて 何故、ループさせる の、でしたっけ? 繰り返しが 冗長に、なるから でしたよね? 今のを、見ると n ←n×i i←i+1 ばかりが 繰り返されてます ので、此を ループに、すれば 良い ので、しょうね さぁ、後は ご自身で、ループに してみて、くださいね (まぁ、しなくても答えですが) 追記 エクセルの、内容を よくよく、見ると 変化が、見える と、思いますょ 式も 確認して、おいて くださいね

0612abc
質問者

お礼

分かりやすく教えて下さりありがとうございます!

0612abc
質問者

補足

Iとありますが、iの間違いですか?

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

物凄く簡単な問題なんですが・・・全く分からないと すると、これから先の問題はすべてわからないかと。 算数でいえば、5+6がわからない・・・近いです。 手順1:n←1,i←1 手順2:i≦10であるあいだ、手順3,4を繰り返す 手順3:n←n×i 手順4:I←i+1 回答例を一部直すだけでできちゃいますね。 さて、これをどうやって説明するか、それを考える方が (あまりに自明すぎて)かなり難しいです。

0612abc
質問者

補足

おそらくですが、手順4のIってiのことですよね? うち間違えですか?

関連するQ&A

  • 緊急!アルゴリズムについて困っています!!

    学校の授業でこのような問題が出たのですが全くわからずに大変困っています… (1)図(画像)のフローチャートに示すアルゴリズムをJava言語で作成しなさい。ループの繰り返し回数は個人で判断すること。また、BigDecimalなどの多倍長精度の演算を用いること。 (2)このアルゴリズムは何を算出するものか答えてください。 (3)このアルゴリズムの名称を答えてください。 本当に何もわからなくて困っています… 助けてください!!

  • 初歩的な質問ですが、どなたかアドバイスお願いいたします。

    初歩的な質問ですが、どなたかアドバイスお願いいたします。 演算子(+、-)などを、文字列に代入し整数と連結しても、演算子として扱えないのでしょうか? 複数の演算子を入れ替えて使用したいので、変数へ代入して使用したいのですが・・・・ 例) $sig = '+'; $num = 1; $num2 = 2; $str = $num. $sig. $num2; if ( $str == 3 ){ echo"OK"; } else { echo"NG"; } 上記、例だと「NG」が出力されてしまいます。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの四則演算について

    整数が代入される変数が5つ($a $b $c $d $e $f)あります。 整数の範囲はそれぞれの変数でバラバラです。 $aが1から10まで $bが1から200まで $cが1から50まで といった具合です。 PHPで全ての変数を四則演算して1から46の範囲に収めたいと思っています。 いったいどのような数式にしたら良いのでしょうか?

    • ベストアンサー
    • PHP
  • 整数で…(?_?)

    分かる方いますか? 連続する3個の整数の和と積が同じになるのはいくつかありますか? 例:1.2.3 互いに足しても掛けても6

  • 高速な和積形命題論理式の含意関係判定法

    2つの和積形命題論理式が与えられています。 この2つの式に含意関係が成り立つか判定したいのです。 この問題はco-NP完全問題でまともにやるととても時間がかかります。そこで次のような条件を満たすアルゴリズムを考えてください。 1.アルゴリズムが含意関係がなりたつと答えたときは必ず含意関係が成り立つ。 2.アルゴリズムが含意関係が成り立たないと答えたときは含意関係が成り立ってても成り立たなくてもよい。 3.入力の多項式時間で停止する。 この条件だけだと常に含意関係が成り立たないと 答えるアルゴリズムでもOKになってしまいますが もちろん本当に含意関係が成り立つときはなるたけ含意関係が成り立つと答えてほしいわけです。 私が考えたのは和積形の論理式f、gがあたえられたとしてfのすべての和項に対してgにそれを含意する和項があったらgはfを含意するというものです。 これよりもよい方法を考えてください。 よろしくお願いします。

  • 2次方程式 2つの整数・2つの数を求める問題です。

    二次方程式の2つの数を求める問題です。 (1)和が-5で積が-36である、2つの整数を求めなさい。 2つの数をXとYとおく。 和が-5 ⇒X+Y=-5 (1)とする 積が-36⇒XY=-36 (2)とする (1)を変形して X=-Y-5 (2)に代入(-Y-5)Y=-36 -Y^2-5Y+36=0 (-YをYにするため-1を×)    Y^2+5Y-36=0 (Y+9)(Y-4)=0 Y=-9,4 Y=-9,4をX+Y=-5に代入 Y=-9の時 X=4 Y=4の時 X=-9 答え 4,-9 X・Yのおき方、式、答え方はこれでいいでしょうか? (2)2つの正の整数があって、その差は7で、積は60になります。この2つの整数を求めよ。 差が⇒X-Y=7 (1)とする 積が⇒XY=60 (2)とする (1)を変形してX=7+Y (2)に代入(7+Y)Y=60 7Y+Y^2=60 Y^2+7Y-60=0 (Y-5)(Y+12)=0 ここからがわかりません。ご教授お願いします。また、小さい方の数をX、大きい方の数をX+7とおいて計算したほうが良いとは思うのですが、詳しくわかりません。X(X+7)=60 どうぞよろしくお願いします。

  • c言語プログラム

    加減乗除および剰余の演算記号(+-* / %)と2つの整数を入力し、入力した2つの整数に対して入力した演算を施して表示するプログラムをif文ではなくswitch文を用いて作成しなさいなお、演算記号入力の際に間違った記号(+ - * / % 以外)を入力した場合は+を入力したものとして計算するものとしなさい。 ヒントで 変数としては入力演算記号に対応する変数op、入力する2つの整数に対応する変数m,n、答えに対応する変数ansを使うとよいでしょう宣言についてはopは記号なのでcharで宣言しますが、あとはすべて整数ですのでintで宣言 まずやることは演算記号以外の場合に+であることを表示するプログラムを組むと思うんですけど どうしたらいいのかわかりません力を御貸しください

  • 至急!助けて下さい。プログラミングJava

    明日までの大学の課題が、わかりません。 どなたか教えてください。書き方が、わかりません。言語はJavaです。 よろしくお願い申し上げます。 1.条件分岐 整数d,xをキーボードから入力させ、 dとzの差の大きさ(絶対値)を計算し、結果を表示するプログラムを作りなさい。 2.繰り返し 整数qcをキーボードから入力させ、1からqcまでの整数を全て表示させるプログラムを作りなさい 3.式 式y=xの二乗+6x+10の値を、x=13から21まで、一つづつ変化させた時のyの値を表示しなさい。 4.和 1から58までの和1+2+3+….+58をプログラムを作って求めなさい。 5.乱数 乱数関数rnd()を使って、変数wgに0~383までの適当な数値を代入し、その結果を出力しなさい。 6.円を描く for文を使って、適当な位置に半径17の赤い円を、87個だけ描きなさい。 7.余り 変数qeに整数を入力させ、その変数qeが6で割り切れたら「割り切れる」と表示し、それ以外は「割り切れない」と表示するプログラムを作りなさい。 *ヒント %演算子で割った余りが求められる。 例えば、5%3は2となる。 8.break文 変数bjに0から1000までの乱数を作っては代入することを繰り返し、bjの値が900以上になったら繰り返しを止めて、bjの値を出力するプログラムを作りなさい。 9.カウント 1から1076までの整数の中で、8で割り切れる数がいくつあるかカウントしてその数を表示しなさい。 以上です。 どうかお助け下さいm(__)m

  • 文字を整数として扱う場合の演算について質問

    javaの参考書に、文字を整数として扱う場合の演算についての解説があり、疑問点があったので質問します。 質問1:何故char型の変数は、キャストしなくてもint型のリテラルを代入することができるのか?      例えば、 以下の演算はキャストしなくてもこのまま代入できます。 char ch='a'; ch=98; でも、以下の演算はキャストしていないのでエラーになります。      char ch='a'; ch=ch+1; これは何故ですか?参考書に記載されていた理由として、「byte,char,short、 これ等の型の変数や値を使って計算すると、それ等は一度intに直して計算されるから」というような趣旨の事が書いてありました。 つまり、char型の変数には、キャストしない限りint型の数値を代入できないということですよね? でも前者のソースコードは、chはchar型であるにもかかわらず、int型のリテラル98を代入できています。 これは何故ですか? 質問2:javaの参考書に、インクリメント・デクリメント演算子と複合代入演算子は、型を保存するという解説がありました。これはどういう意味ですか? 僕の仮説では、例えば、      char ch='a';      ch+=5; であれば、5は、char型のまま代入されるということでしょうか?

    • ベストアンサー
    • Java
  • 逆ポーランド記法

    電卓もどきのアルゴリズムを教えて下さい 指定された数式を解読して、演算結果を求める処理を作成したいのですが・・・・ 今考えている手順は (1) 数式を解析して 逆ポーランド記法の中間言語にして於いておく (2) 逆ポーランド記法の中間言語を演算して答えを求める と考えているのですが・・・ << 例 >>  演算式 1+2×3=    答え 7  演算式 (1+2)×3=  答え 9 大昔の知識ですのでもっとシンプルな方法が有りましたらアドバイス頂けませんでしょうか?