どうもどうも。
前々回[/staffblog/2014/02/-2.html]に引き続き、高松開発室のプログラマーTです。
ではさっそく、解答編です。
【問題】
A,B,C,..Fの6種の文字をランダムで1000個表示するプログラムをC/C++で書いてください。ただし、1つ前と同じ文字が表示されないようにしてください。
【解答例】
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
enum {
TRY_NUM = 1000, // 実行回数
RAND_RANGE = 6 // 乱数幅(F-A)
};
srand(static_cast<unsigned int>(time(nullptr)));
int value = rand()%RAND_RANGE;
for ( int i=0; i < TRY_NUM; ++i )
{
value = (value+1+rand()%(RAND_RANGE-1))%RAND_RANGE;
printf( "%c", 'A' + value );
}
return EXIT_SUCCESS;
}
このプログラムの工夫ポイントは2点です。
一つ目は、「1つ前と同じ文字が表示されないように」という部分についてですが、よく見受けられる解法は、「6個から抽選し、前回と同じなら再抽選し続ける」というものです。問題文を読んでそのままプログラミングすればそうなってしまいますが、これですと場合によっては何回も何回も同じ処理を繰り返していまいます。そこで、「6個の文字の内、1つ前の文字を除いた5個から抽選する」というアイデアをプログラムにしたのがこの解答例です。これでしたら、必ず1回の抽選で答えを得ることができますね。
二つ目は、ABCDEFという文字を表示する方法です。もしかしたら switch 文を使って、0ならAを表示、1ならBを表示、というプログラムを書いた方もいるかも知れません。しかし、アスキーコードの ABC... は連続した数字ですので、解答例のように 'A'+value で表現できます。
このようにプログラムをちょっと工夫することで、処理がシンプルになったり、ループ回数がぐっと減ったりします。
ただし、プログラムを工夫する場合に注意しないといけないのは、その工夫によってプログラムの可読性が失われないようにして欲しいということです。客観的に見ると意味が伝わりにくいな、という心配がある場合は、どういうことをしようとしているのかコメントを付け加えるようにしてください。工夫もされていて、かつ読みやすさも意識されている提出作品は、きっと採点者に高得点をつけさせているはずですよ。
さぁ、これでぐっと内定GETが近づきました。是非とも、ジーンに応募してみてください!
★
ところで、先週の記事にて、高松開発室に関するお問い合わせがさっそく recruit@xeen.co.jp に届きましたので、そのいくつかにこの場でお答えしたいと思います。(お問い合わせがあった方には直接お返事もしております)
Q1.インターン研修ではどのような研修を行うのですか?実際に製品の開発にも携われますか?
A1.インターン研修中は、C++プログラミング、数学、物理、グラフィックに関する指導を行い、最後はゲーム作品作りをしていただきます。その作品にて、合否の判定を行います。この研修中に、製品の開発に携わっていただく事はありませんが、内定が出た方は、在学中にアルバイト契約にて一緒に製品開発をしていただく事を相談させていただく場合はあります。
Q2.インターン研修は誰でも受けられるのですか?
A2.弊社を第一希望の就職先として、実際にジーンの高松開発室か大阪本社オフィスに通うことができることが条件となります。よって、在学中の学校様ともご相談が必要にはなるかと思います。また、ひとまずは一般の新卒の応募と同じく、筆記試験と作品提出はしていただきます。インターン研修期間については、3ヶ月程度を想定して行ってきた実績がありますが、達成度に応じて期間短縮もありえます。
Q3.高松開発室ではどういった職種の応募を求めていますか?
A3.中途様については、どのような職種でもひとまずご相談ください。新卒採用を目指す学生様については、プログラマーと3Dデザイナーを募集しております。
Q4.毎日、うどんを食べていて、飽きませんか?
A4.高松開発室から徒歩15分圏内にうどん屋さんは少なくとも10店以上存在します。毎日のお昼休みに1店舗ずつ回ったとしても、2週間は同じ店に当たらないことになりますので大丈夫ですよ。
他にも気になることやご相談など、なんでも気軽に recruit@xeen.co.jp にメールをくださいね。
★
さーて、忘れてはなりません、もう一つ、うどんの方のクイズの回答もお送りしましょう。
①
綾歌郡綾川町のうどん喫茶スタートのコーヒーうどんです。
喫茶店ならではのメニューで、うどん粉にコーヒーが練りこまれているようです。ただのネタメニューだろう、と思わせておいて、案外、普通以上においしいうどんだったりします。
(うどん県の普通以上は、全国的に見ればかなりレベルが高いですよ)
②
坂出市のてっちゃんの豚汁うどんといなり寿司の天ぷらです。他にもラーメンのようなうどんのらぅどんなど、変わり種メニューで攻めまくりのうどん屋さんです。
③
丸亀市の明水亭の変わり釜揚げです。季節ごとに特別メニューがあり、この変わり釜揚げは野菜やお肉も一緒に食べられる鍋料理?っぽい贅沢メニューです。
メディアに取り上げられることも多い有名店ばかりでしたから、簡単な問題だったかもしれませんね。いろんな美味しいうどんと出会えるうどん県、みなさんも新たな発見を求めて是非是非うどん県へお越しください。そして、素敵な発見があったら、僕たちにも教えてくださいね。
※補足:ジーンの採用試験にうどんに関する問題は出題されません(笑)
ではまた〜( ´ ▽ ` )ノ