インターネットで見つけたり、自作したプログラミングの演習問題。プログラミング言語は何でも良い。
Contents
10進数を2進数に変換する
出力例) 10進数: 10 2進数: 1010
アルゴリズムは「10進数を順次2で割って、余り(0か1)を並べる。」です。http://www.infonet.co.jp/ueyama/ip/binary/dec2bin.html
Python で書いてみた。
1 import sys
2
3 decimal_literal = int(sys.argv[1])
4
5 class DecimalNumber:
6 def __init__(self, dec):
7 self.dec = dec
8 self.result = []
9
10 def __to_binary(self):
11 half = self.dec / 2
12 residue = self.dec % 2
13 if self.dec > 0:
14 self.result.append(residue)
15 self.dec = half
16 self.__to_binary()
17
18 def to_binary(self):
19 """@return string"""
20 self.__to_binary()
21 s = ""
22 self.result.reverse()
23 for x in self.result:
24 s += str(x)
25 return s
26
27
28 DN = DecimalNumber(decimal_literal)
29 print "10進数: %d\n 2進数: %s\n" % (decimal_literal, DN.to_binary())
トランプを配る
情報源: http://ameblo.jp/programming/entry-10001721422.html#c10029378309
トランプを配ります。あなたには2つの引数、「トランプを配る人数」と「トランプ」が渡されます。
例) 3 "123123123"
最初の3はプレイヤーの人数を示しています。
"123123123" はトランプの並びを示しています。あなたはこのなかのトランプを配っていかなければなりません。
この場合、あなたのプログラムは
{"111","222","333"}
を返さなければなりません。
"111"は一番めのプレイヤーが受け取るトランプです。 "222"が2番目のプレイヤーが受け取るトランプです。 "333"が2番目のプレイヤーが受け取るトランプです。
ところが、以下のような場合もあります。
4 "123123123"
すべてのプレイヤーは同じ数だけのトランプを受け取らなければなりません。
この場合、あなたのプログラムは
{"12","23","31","12"}
を返さなければなりません。
{"123","23","31","12"} は駄目です。
では、以下にもうすこし例をのせます。
例1)
6
"012345012345012345"
Returns: {"000", "111", "222", "333", "444", "555" }
例2)
4
"111122223333"
Returns: {"123", "123", "123", "123" }
例3)
1
"012345012345012345"
Returns: {"012345012345012345" }
例4)
6
"01234"
Returns: {"", "", "", "", "", "" }
例5)
2
""
Returns: {"", "" }では、挑戦してください。
FizzBuzz 問題
情報源: http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
乗算表
情報源: http://www.phim.unibe.ch/comp_doc/c_manual/C/PROBLEMS/problems.html
左上の角が 1 x 1、右下の角が 12 x 12 となる乗算表を作りなさい。以下のように出力せよ。数値が3桁揃えになっていることに注意しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144