Green Town 8OG

プログラミングの学習とか!

PythonでFizzBuzz問題を解いてみる

どうしてプログラマに・・・プログラムが書けないのか?というページに、Fizz-Buzz問題というのがあったので、初心者の自分に解けるかPythonでコードを書いてみた。

3ヶ月ほど前からプログラミングを勉強しはじめて、いまは色々な言語(の初歩の初歩レベル)をつまみながら勉強しているのですが、そのとっかかりとして一番最初に学んだのがPythonだったので、Pythonでやります! (てへ

 

設問は以下の通り↓

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

 

脳みそフル稼働させて考えて・・・

  • 3の倍数は3で割り切れる数だ。
  • 5の倍数は5で割り切れる数だ。
  • 3と5の両方の倍数は、3で割り切れ、かつ5でも割り切れる数だ。

それをコードにすると・・・

for i in range(1,101):
    if(i % 3 == 0 and i % 5 != 0): # 3で割り切れるが5で割り切れない
		print("Fizz")
	elif(i % 5 == 0 and i % 3 != 0): # 5で割り切れるが3で割り切れない
		print("Buzz")
	elif(i % 3 == 0 and i % 5 == 0): # 3で割り切れ、かつ5で割り切れる
		print("FizzBuzz")
	else:
		print(i)

(i % 3 == 0 and i % 5 == 0)は、3と5の最小公倍数15を使って(i % 15 == 0)としてもいいでしょうか。

今回は頭に思い浮かんだコードをそのまま直にPythonで書いてみました。

でもたぶんもっと短くエレガントに書くやり方が他にあるはず!

 

 

基本情報処理技術者の勉強をはじめようと思って

今日八王子の駅ビル8回の本屋でこんなん買いました。

 

情報処理教科書 情報処理試験の計算問題がちゃんと解ける本
情報処理教科書 情報処理試験の計算問題がちゃんと解ける本
posted with amazlet at 12.06.04
坂下 夕里
翔泳社
売り上げランキング: 249901

表紙の真ん中右下あたりに書いてあるのですが、ITパスポート・基本情報技術者・応用情報技術者で出題される計算問題を解くのに必要となる知識(のエッセンス)が、ひと通り網羅されている感じです。

 本屋で手にとってペラペラと中身を見てたら、なんだかページのレイアウトがとても美しかった(大事 笑)のであまり迷わずにそのままレジに持って行きました。

 肝心の内容ですが、早速はじめの方を少し読み進めてみたところ、導入は本当に基本的な知識の解説から始まっていました。

 第一章は情報処理試験に必要な数学」というタイトルで・・・演算とは、足し算や引き算などの計算をすることです・・・掛け算(乗算)7×11=77 <7を11回足す>・・・

といった感じの超丁寧な解説でなかなか好印象。そんなの知ってるっつーのと思わず言いたくなるかもしれないけれど、何か勉強を始める際にはこのくらいまで基本に1度返ったほうがいいのかなと思いました。

 もしある日突然ようじょに「おにいたん、掛け算ってなーに?」って聞かれた時、案外さっと「◯を×回足すことだよ」とは答えられずに、「掛け算は掛け算だよ(キリッ」とか答えになってない答えをいってしまいそうです。僕の場合は。

 

 

 

これから英語をどう学んでいくか

英語の勉強はもっとしっかりみっちしやっておくべきだった・・・。(泣)

大学4年になって今更、そんな後悔の念に激しく駆られている今日この頃です。

 

プログラミングの学習を進めていくなかで、英語に不自由なことが、学習の大きな足枷になることを痛感。質・量の両面で充実した最新の情報を得るためには、英語で書かれた文章を読めることが絶対の必要条件であることを認識しました。何か問題が起こったときに解決のヒントを探す際も、日本語の情報源だけ頼っていてはダメだと思いました。ほんといまさらだけど。

心を入れ替えて、これから英語の勉強に取り組んでいこう。