【Xcode,iOS,Objective-C】Objective-CでFizzBuzzのロジックを考えてみた
FizzBuzzとは英語圏の人々の言葉遊びで、複数人が順番に1からカウントアップで数えていき、3の倍数のときはFizz、5の倍数のときはBuzz、、15の倍数のときは
FizzBuzzと言わなければいけないゲームです。
これをソースコードで実現しようとするとなかなか頭を使います。
もともと、WorksApplicationsの1年目に、東大卒で仕事も超優秀な先輩によるラボ内の新人トレーニングで初めて知りました。
当時はDelphiという言語でやっていたのですが、今年初め転職活動中にある企業の入社試験でこれが出るとエージェントから事前に聞き準備しました。
ObjectiveCはDelphiに比べWeb上での情報量が多いので参考になるコードが落ちてるだろうと思ったが、他の言語のばかり出てきて一件も見つからず、自分で考えることに。
当時は苦戦したが、そこまで苦労することなく完成しました。
試験では試験官に珍しいロジックだね、面白いと評価されました。(普通どうやるかは知らない。。)
みなさんも挑戦してみてはいかがでしょうか?
- (void)viewDidLoad { [super viewDidLoad]; for(float cnt = 1; cnt <= 100; cnt++) { float intThree = cnt / 3; NSString *strThree = [NSString stringWithFormat:@"%g",intThree]; float intFive = cnt/5; NSString *strFive = [NSString stringWithFormat:@"%g",intFive]; float intFifteen = cnt/15; NSString *strFifteen = [NSString stringWithFormat:@"%g",intFifteen]; if(strFifteen.length == 1){ NSLog(@"FizzBuzz"); }else if(strThree.length == 1 || strThree.length == 2){ NSLog(@"Fizz"); }else if(strFive.length == 1 || strFive.length == 2){ NSLog(@"Buzz"); }else{ NSLog(@"%g",cnt); } } }