青の部隊 505小隊 ULZ

プログラムパズル

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集
問題を追加したり、回答を書いたり、適当に。
なにこれにちゃんの宿題スレのまとめ?っていう風になるのが理想なんで、
問題を追加してもらえると何気によいです。


二進数で表示

符号無し整数を二進数表示するプログラムを書きなさい。

【問題の背景】
昔、○ず君が企業実習中に直面した問題が確かこれだったような。
効率とか気にせずに組めばおそらく問題無かったんですが、
車輪の再発明せんでも検索したらなんかでてくるだろうとぐぐったら、
にちゃんのスレがヒットしたらしく、案の定トリッキーな方法で
それを実現しており
「これどうなってんの?」
と相談を受けた記憶があります。その解はもちろん覚えてないし、
問題自体もうろ覚えです。
解き方としては、普通に数として変換を書ける方法と、
計算機内の2進表現をそのまま利用する方法が考えられますね。
もっとトリッキーな方法もあるかもしれませんね。
個人的には
「カレンダークラスを利用すると7日に一度日曜日が来るから…」
から説明が始まるような、おばかな解もちょっと好きです。


分数の通分

二個の分数を加算した結果を約分された分数で返すプログラムを
作りなさい。また、二個の分数を通分した結果も求めなさい。

【問題の背景】
学校の宿題を計算機にやらせるプログラム。
学校の宿題では計算過程を書かねばならないんです。
通分の結果を書かなくてはならないんです。
通分と約分をするプログラムを書いて、
小学生を算数ドリルの魔の手から救ってあげてください。
ただ、個人的には算数ドリルはまじめにやるべきだと思います。


ローマ数字

3999以下の正の整数をローマ数字に、ローマ数字を整数に変換する
プログラムを作りなさい。無論、ローマ数字は文字列になります。

【ローマ数字のルール】
下記をご参照ください。
wikipedia
要するにこうです。
1=I 2=II 3=III 4=IV 5=V 6=VI 7=VII 8=VIII 9=IX 10=X
11=XI ... 14=XIV 15=XV 16=XVI ... 19=XIX 20=XX
... 34=XXXIV ... 38=XXXVIII 39=XXXIX 40=XL ...

文字テーブル 1:I 5:V 10:X 50:L 100:C 500:D 1000:M

【背景】
どっかの大学の初級C言語の講義の課題らしい。
ローマ数字好きなので覚えていた。めっさわかりづらいよね。
こんな数字で学問が発展するわけねーよ。
言語(自然言語/プログラム言語問わず)にも同じことが
言えるだろうなぁという感想。


n進数で表示

2進数で表示のn進数版。
数字には何を使用してもかまいません。
11進数以上のことも考えるとCOOL。

【背景】
mixiのコミュニティーでこれに似た問題が出ていた。
それだけ。

タグ:

+ タグ編集
  • タグ:
ウィキ募集バナー