#acl alstamber:read,write,revert,delete,admin All:read == なにこれ == * Scala勉強会で使うための問題セットとか。 == 問題 == 引数nが与えられたとき、1からnまでの奇数の総和を求める関数を定義してみよう。 == 問題 == nとrが与えられた時、nPrを求める関数を定義してみよう。 == 問題 == 空でない整数リストをひとつ左に回転させたリストを求める関数rotateLeftを定義してみよう。 rotateLeft(List(1,2,3))の結果はList(2,3,1)。 == 問題 == 整数のリストが回文になっているかどうかを判定する関数isPalindromeを定義してみよう。 == 問題 == FizzBuzz問題をScalaで解いてみましょう。 == 問題 == 与えられた2以上の整数nが素数の時に真を返す関数isPrimeを定義してみよう。 == 問題 == k が 1 から 10 の各整数値について10000k以下の素数の個数を求めてみよう。 == 問題 == 入力されたアルファベットを数字に変換する関数を定義してみよう。 変換規則はExcelの列名。 例えばA=1、B=2、Z=26、AA=27、XFD=16384。 == 問題 == 上の問題について逆変換をする関数を定義してみよう。 == 問題 == 整数のリストが与えられた時それぞれの要素を2乗したリストを求める関数を定義してみよう。 == 問題 == ある整数nに対してn!を求める関数を定義してみよう。varが出てこないように工夫しよう。 == 問題 == 2つの整数のリストが与えられた時、これをベクトルとみなしてその内積を計算する関数を定義してみよう。 == 問題 == n番目のフィボナッチ数を求める関数を定義してみよう。 == 問題 == 整数a, bに対して最大公約数を求めて返す関数を定義してみよう。 == 問題 == タプル(a, b)が与えられたとする。これをa/bという分数とみなして、それを約分してa'/b'にし、(a', b')というタプルとして返す関数を定義してみよう。 == 問題 == 与えられる英文に最も回数が多く使われている英単語のうちアルファベット順で最も先に現れる英単語を求めるプログラムを作りなさい。ただし、入力の大文字と小文字は区別しないが、語尾活用の変化は区別するものとする。 入力は2行からなる。 1行目に単語数N(1≦N≦300)が与えられる。 2行目には英文が与えられ、各文字は”A~Z a~z”のいずれかであり、総文字数は1000を越えない。 出力は2行からなる。 1行目に、入力データで最も多く使われている英単語を英字小文字で出力しなさい。 2行目に、その英単語が使われている回数を出力しなさい。 == 問題 == 次のようなプログラムがあるとする。 {{{#!highlight scala object Exercises { def succ(n: Int) = n + 1 def pred(n: Int) = n - 1 } }}} Excercisesオブジェクトに次の関数を定義してみよう。 * 2つの引数をとってその和を返す関数myadd * 引数は0か正の数であるとする * +を使ってはいけない * リストを引数にとってそのすべての要素の和を返す関数mysum * リストを引数にとってその要素の数を返す関数mylength * lengthメソッドを使ってはいけない * リストと一引数関数を引数にとってmapと同じような仕事をする関数mymap * mapをつかってはいけない * リストと一引数関数を引数にとってmapと同じような仕事をする関数myfilter * filterをつかってはいけない * 2つのリストを引数にとって連結したものを返す関数(:::と同じ仕事をする関数)myappend * もちろん:::は使ってはいけませんよ * 整数のリストを引数にとってその中から最大のものを返す関数mymax * リストを引数にとってそれを反転したものを返す関数myreverse * もちろんreverseはつかってはいけない == 問題 == 与えられた英語の大文字で構成された文字列の中の文字を、与えられた数字の分だけ左にシフトさせてみよう。 たとえば、’C’を2つ左にシフトさせると’A’、’Z’を2つ左にシフトさせると’X’。 与えられる英語の文字列はAからZで、Aの次はZにシフトさせるものとします。 == 問題 == 整数のリストに対して挿入ソートをする関数を実装してみよう。 == 問題 == 整数のリストに対してマージソートをする関数を実装してみよう。 == 問題 == フィボナッチ数列の項の値が400万を超えない範囲で、偶数値の項の総和を求めましょう。 == 問題 == 九九の表を出力するプログラムをつくってみましょう。 == 問題 == エラトステネスのふるいを使って1から10000の素数のリストをつくってみましょう。 == 問題 == 20世紀中に, 月の始めが日曜日である日は何回ありますか? 1900年1月1日は月曜日です。 9月, 4月, 6月, 11月は30日まであって、 2月を除く他の月は31日まであります。 2月は28日まであるが, うるう年のときは29日です。 うるう年は西暦が4で割り切れる年に起こります。しかし、西暦が400で割り切れず100で割り切れる年はうるう年ではありません。 == 問題 == ある数字にそれを逆に並べた数字を足すという計算を、 回文数(上から読んでも下から読んでも同じ数)になるまで繰り返すとき、 もっとも計算回数を要する二桁の数を答えましょう == 問題 == 「(名前)が、(場所)で、(アクション)した」がランダムに組み合わされて出てくるプログラム。 == 問題 == http://codeforces.com/problemset/problem/1/A == 問題 == http://www.codeforces.com/contest/136/problem/A == 問題 == 間違い探し 「来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来來来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来」 見つけたらRT == 問題 == http://tech-gym.com/2012/07/%E6%9C%AA%E5%88%86%E9%A1%9E/786.html == 問題 == 2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり, そのような数字の中では最小の値です。 では, 1 から 20 までの整数全てで割り切れる数字の中で最小の正の数はいくらでしょう。 == 問題 == サッカーの試合結果の記録されたデータファイルを読み取り、 優勝したチーム名を出力するプログラムを作成しましょう。 データファイルには、先頭の行にチーム数が出力されており、 2行目からチーム名(チーム数分)、それ以降の行に試合結果が出力されています。 試合結果の行は以下のフォーマットとなっています。 <ホーム側のチーム名> <ホーム側チームの得点> <アウェイ側チームの得点> <アウェイ側チーム名> チーム名は30文字以内とします。 試合に勝ったチームには勝ち点3が与えられ、引き分けたチームには勝ち点1が与えられます。 勝ち点の合計が最も多いチームが優勝となりますが、勝ち点の合計が同じチームが複数ある場合には それらのうち、得失点差(得点と失点の差)の合計が大きいチームが優勝となります。 得失点差の合計が同じ場合にはどちらを優勝としてもかまいません。 == 問題 == 四則演算になっている文字列が与えられた時、その答えを返すようなプログラムをつくってみましょう。例えば、"1+2"→3、"2+3*5"→17です。 == 問題 == 有理数を表すクラスRationalを実装しましょう。Rationalには次のようなメソッドを実装しましょう。 * 有理数を文字列の形で出力するtoStringメソッド * a.min(b)の形でaとb小さい方を返すminメソッド * a.max(b)の形でaとb大きい方を返すminメソッド * Rational同士の + * - / メソッド == 問題 == 複素数を表すクラスComplexを実装しましょう。Complexには次のようなメソッドを実装しましょう。 * 複素数を文字列の形で出力するtoStringメソッド * 極座標形式で表現するpolarメソッド * Complex同士の + * - / メソッド == 問題 == ある名前とある名前を入れると相性診断を10段階で出してくれるプログラム。診断結果は適当でもいいけど、同じ組み合わせだったら同じ数値が必ずでないといけないように。