• 締切済み

「偶数・奇数の和」のフローチャート

「キーボードからnの入力をうながし、1からnまでの和を計算するプログラム」のフローチャートを以下のような形で 学校の情報の時間で作りました。 このようにして、「偶数の和」「奇数の和」のフローチャートを作りたいですがうまくできません。どなたか教えてください!。

みんなの回答

回答No.7

>入力するnによっては、かならずしも偶数と奇数を同じ回数可算させるとは限らない。 その処理はループを抜けた後に一回だけifをしてnの値によってマイナスして修正する。 そうすればループないで何回もifさせる必要ないしループの回数もiを1加算させるより 2加算させて計算した方が単純に半分のループだけで済む。 学校の勉強としたらループないでループさせて処理した考えは100点かもしれないけど 仕事ととしてソースを書くなら0点。 質問者が将来PGやSEになりたいなら今から効率的なソースを書くことを考えた方がいい。 よくこういうたとえの時に出されるのがソートのアルゴリズム。 学校の勉強ならバブルソートでも100点かもしれないけど仕事と考えた場合は バブルソートは0点。だって効率が悪いから

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.6

「ループを 2つ書く」という方針もありかな.

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.5

ループのiを2づつ可算させるという意見もあるがそれはやめたほうがいい。 入力するnによっては、かならずしも偶数と奇数を同じ回数可算させるとは限らない。 それを考慮したフローチャートにするとかえって分かりにくくなる。 この場合は、効率性よりも可読性(分かりやすさ)を優先すべき。

回答No.4

あっ文書しっかり読んでなかった。偶数の和ではなくて 偶数と奇数のそれぞれの和ね。 だったらやっぱりiは1から初めて2ずつ加算させて 奇数格納変数 = 奇数格納変数 + i 偶数格納変数 = 偶数格納変数 + i + 1 でやれば条件分岐すら必要ない。

回答No.3

 表現方法が不明で混ぜこぜになりますが勘弁して下さい。  はじめ  odd=0 even=0  n  ループ  i=1,2,,,,,,n if( i & 1 ){//1とAND演算して0でないなら奇数 odd += i;  }else{   //1とAND演算して0なら偶数 even += i; } ループ  "奇数和=",odd "偶数和=",even 終わり

回答No.2

効率で考えると#1の人のは効率が悪い。 iの値をループで1ではなくて2加算させればいいだけ。

  • ulti-star
  • ベストアンサー率41% (186/452)
回答No.1

判断(菱形)を使います 2で割った余りが0のとき偶数、そうでないとき奇数 BASICならi MOD 2=0 Cならi%2==0 菱形から二股に分かれ(菱形に近いところにYES、NOと書く) 処理をします YESが偶数、NOが奇数 ループ始  | <判断> |  | 処理処理 |  | ループ終 また、変数の定義、出力は1つずつ増えます

関連するQ&A

  • 偶数と奇数の和は奇数になることを説明しなさい

    中2の数学の問題です。 問題: 偶数と奇数の和は奇数になることを説明しなさい。 問題集の解答で疑問に思う点がありましたので質問させていただきます。 解答: m,nを自然数とすると偶数は2m、奇数は2n-1と表せる。 2数の和は、 2m+2n-1=2(m+n)-1 m+nは自然数だから2(m+n)は偶数になり、2(m+n)-1は奇数になる。 よって偶数と奇数の和は奇数である。 (証明終わり) 上記証明でわからない点が2点あります。 (1)m,nをなぜ自然数に限定しているのか。 m,nは一般に整数ではないのでしょうか?中学レベルではマイナスの数も 偶数、奇数が定義できると思うので、私はこのm,nは整数と置くのが正しい 答え方だと思うのですが、いかがでしょうか? (2)もしm,nが自然数と置くのが正しいとしたとき、奇数を2n+3とおいてしまうと 3(n=1)から始まる奇数になり一般に自然数全体で証明したことにならないの ではないかという疑問があります。 2m+2n+3=2(m+n+1)+1 このような解答も見かけます。 文字式の計算上は奇数といえますが、nが自然数で奇数を2n+3とおいても 問題ないのでしょうか?  ご回答よろしくお願いします。   

  • 数列の和。偶数奇数に分かれる場合

    よろしくお願いいたいます。 数列の数列の和。偶数奇数に分かれる問題で a2m=4m^2+m a2m-1=4m^2-3m+1 となりました。このn項数までの和を求める問題なのですが、、 項数の設定が良くわかりません。 偶数、奇数とも項数をNでおき、和の公式に当てはめる流れになるのですが 最終的にn項に戻すときに 偶数はn=2Nだから N=1/2nを代入。 奇数はn=2N-1だから N=n+1/2を代入。 まず、項数をn=2N、n=2N-1と置くところがわかりません。 偶数奇数なのだから半分ずつ、1/2nずつではないのですか? また項数をn=2N、n=2N-1と置いたとしいても足す数は最終的にnなのだから 1/2n+n+1/2とnで換算したときに合計がnにならないとおかしいと 感じます。 私は何が理解できていないのでしょうか? 丁寧なご説明をいただけたら幸いです

  • 奇数と偶数をそれぞれ足していく:python

    私は、今プログラミングの勉強をしています。そこでfor,if,wheleを使ったプログラムの練習として奇数と偶数をそれぞれ足していくプログラムを作ろうとしているのですが思うように行きません。そのためpythonでこのプログラムを書いていただけないでしょうか。 どうかよろしくお願いします。 仕様としては、下記のようです。 数値を入力してください。 10 奇数:1、偶数:2 奇数:3、偶数:4    ・   ・      ・   ・    ・   ・ 奇数の合計:25、偶数の合計:30 こんな感じのイメージです。

  • コンビネーションの偶数奇数判定ってできますかね

    nCm コンビネーションについてですが、n,mが偶数か奇数かによって偶数奇数判定ってできないでしょうか? 分数が入ってると偶数か奇数かわからないような気がするのですが、 階乗計算をしないでできるだけ簡単にコンビネーションの偶数奇数判定をしたいのですが、 どなたか、知恵を御貸し下さい。 お願い致します。

  • 偶数奇数の判別!!

    偶数奇数に分けて入力した値ををソートする場合のプログラムを教えてください!!

  • PHPで偶数と奇数を判断するには

    宜しくお願いします。 一覧表示等をする時に見やすいように一行ずつテーブルの色を変えたりすると思うのですが、これをPHPのfor文で自動的に交互に色を変えるようなプログラムを作ろうと思っております。for文で繰り返し処理場合、例えば、 for($n = 0; $n < 100; $n++) {  if($n = 偶数)  {  $bgcolor = "#ff0000";  }  elseif($n = 奇数)  {  $bgcolor = "#0000ff";  } } といった形で交互に色を変るには、偶数/奇数の判断が出来ないと無理だと思うのですが、何か良い方法は無いでしょうか?

    • ベストアンサー
    • PHP
  • フローチャートお願いします!!!!!

    問題1 入力された10進数の自然数Xを2進数yに変換し出力するプログラムのフローチャートをサブルーチンを含めてすべてかけ。しかし、整数型の変数aから第iビット目(最初を下位ビットとして第0ビットとせよ)を取り出す整数型関数(メソッド)get_bit(a,i)を作成すること。 これのプログラムの作成ができません。お願いします。returna&(1<<n)を使えば大丈夫と思いますが、なかなかうまくできません。JAVAで簡単にわかりやすくすべて書いてください。 問題2 キーボードから自然数nを入力し、1からNまでの和を求め、出力するプログラムのフローチャートをサブルーチンも含めてかけという問題です。これもJAVAでお願いします。

  • プログラミング mからnまでの偶数の和

    mからnまでの偶数の和を出す。例  2~6なら 和は12 1~7なら 和は12 m、nは入力する。

  • 課題で困っています...

    課題の演習問題で困っております。 課題は、 数nを入力し、1からnまでの奇数の和、偶数の和および1からnまでの和を計算し、表示するアプリを作りなさい...といったものですが、1からnまでの和については表示させることができたのですが、Modを使った奇数の和、偶数の和の表示がどうもうまくいきません。 ご存じの方は、どうぞご教示ください。 よろしくお願いします。

  • この数学の問題には公式はあるのでしょうか?

    2以上150以下の整数nに対して、<n>はnの約数の中で2番目に大きい整数を表すことにします。 例えば6の約数は、1,2,3,6なので<6>=3、7の約数は1,7なので<7>=1です。 問1.2以上150以下の全ての偶数nに対する<n>の和、すなわち、<2>+<4>+<6>+・・・・・+<150>を求めなさい。 問2.2以上150以下の全ての3の倍数nに対する<n>の和、すなわち、<3>+<6>+<9>+・・・・・+<150>を求めなさい。 問3.2以上150以下の全ての整数nに対する<n>の和、<2>+<3>+<4>+・・・・・<150>を求めなさい。    なお、2以上150以下の整数nのうち、<n>=1であるものは35個です。 これをそれぞれ解いてみたのですが 全て答えは導いたものの、全問不正解でした・・・・ (全部微妙に正解の±10以内に収まる程度の間違いでした=ただの計算ミスという・・・・) 問1は、それぞれの<n>を書き記しているうちに 答え=1~75の和ということに気づき計算しました。 ただ、計算間違いで・・・採点後、電卓で計算し直したら合いました。 私の導き方としては、1~75までを紙に書き記して、 隣の数字同士を足してという形で出しました。 母曰く公式があるのではないかということですが、 これは開成中学の入試なのですが これを一番間違いにくい方法で答えを導く場合は 1~100までを足した和から100~76までの和を引く方法でしょうか? それとも1~10の和と、1~100の和は覚えておく人も多いかと思いますが(私はそのたびに計算すればいいやというので覚えていませんが・・・) 1~10,1~20,1~30,1~40・・・・と10単位で和を覚えていたりするのでしょうか? (開成中学を受ける人は) 問2はこれも、<n>を書き出している最中に法則性は見いだしたのですが 3の倍数は、奇数、偶数、奇数、偶数・・・となり 倍数が奇数のほうは、<n>が2ずつ増えて、1,3,5,7,・・・・で49まで。(それぞれ3の奇数の倍数を3で割ったものが<n>) 倍数が偶数のほうは、<n>が3ずつ増えて3,6,9,12,15,・・・・75と3の倍数になっている。(それぞれ3の偶数の倍数を半分にしたもの) と分かったのですが、公式あるのかな?と思い、公式があったとしても知らないので 全部を問1の時みたいに足して答えを導き出しました。 (計算ミスはしましたが・・・・。問1、問2ともにそうだったのですが、紙の大きさの関係で、横に20個ぐらいしか数字を書けず、それぞれ20個ずつ数字を書いて、導いて、3桁の数になったものを最後に3~4個ほど足して答えを出したのですが、その最後の3桁の足し算にミスがありました(笑)ちゃんと筆算したんですけどね、パッパとやったもので(笑) (文面で分かるかとは思いますが、実際に受験したわけではないので・・・家で気軽にやってました) 問3は 偶数の部分は問1で導き出したので 後は奇数部分を導いて、問1の答えと足せばいいのですが (問1で計算ミスがあった時点で、これも正解するわけないのですが) 奇数の数字を全部書き出して、それぞれ<n>を求めました。 で、1の数は全部で35個ということで、偶数の<2>が1なので、奇数では全部で34個あるということで 最後まで、<n>を求めて1の数がきちんと奇数内で34個あるかも確認をしました。 結果、1つ55の<n>を5と書いていて・・・・本来は11なので、 答え合わせしたときに、6ずれてると分かり、計算ミスは無かったので 探してやっと、55の<n>が間違っていることに気づき、修正し、納得しました。 これも公式はあるのでしょうか? それぞれ計算ミスは合ったものの解けたし、納得できない点は無かったのですが それぞれ公式とか、もっとやりやすい、簡単な解き方あるのかなと思い質問しました。 ただ、たぶん1時間試験かと思うのですが 意外と問題数が少なく、時間配分的にも、全てを大体均等に時間分けしたら この問題は15分ぐらいですべて解ければいいので、 その時間だと、これ以上簡単な方法は無いのかなとも思ったのですが。 (地道にコツコツ解くしか無いのかな・・・と)

専門家に質問してみよう