思考の軌跡 試行の足跡

iOSアプリのコーディングメモやデザインについて、マーケティング、読んだ書籍、気になるニュースに関して書き綴るブログです。

【Xcode,iOS,Objective-C】Objective-CでFizzBuzzのロジックを考えてみた

FizzBuzzとは英語圏の人々の言葉遊びで、複数人が順番に1からカウントアップで数えていき、3の倍数のときはFizz、5の倍数のときはBuzz、、15の倍数のときは
FizzBuzzと言わなければいけないゲームです。

Fizz Buzz - Wikipedia

これをソースコードで実現しようとするとなかなか頭を使います。
もともと、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);
        }
    }
}