ThoughtWorks的面試題FizzBuzzWhizz,C實現

看到這個題目,作一下吧!spa

你是一名體育老師,在某次課距離下課還有五分鐘時,你決定搞一個遊戲。此時有100名學生在上課。遊戲的規則是:
code


1. 你首先說出三個不一樣的特殊數,要求必須是個位數,好比三、五、7。
2. 讓全部學生拍成一隊,而後按順序報數。
3. 學生報數時,若是所報數字是第一個特殊數(3)的倍數,那麼不能說該數字,而要說Fizz;若是所報數字是第二個特殊數(5)的倍數,那麼要說Buzz;若是所報數字是第三個特殊數(7)的倍數,那麼要說Whizz。
4. 學生報數時,若是所報數字同時是兩個特殊數的倍數狀況下,也要特殊處理,好比第一個特殊數和第二個特殊數的倍數,那麼不能說該數字,而是要說FizzBuzz, 以此類推。若是同時是三個特殊數的倍數,那麼要說FizzBuzzWhizz。
5. 學生報數時,若是所報數字包含了第一個特殊數,那麼也不能說該數字,而是要說相應的單詞,好比本例中第一個特殊數是3,那麼要報13的同窗應該說Fizz。若是數字中包含了第一個特殊數,那麼忽略規則3和規則4,好比要報35的同窗只報Fizz,不報BuzzWhizz。遊戲


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int spec_num[3] = {0};
    scanf("%d,%d,%d",&spec_num[0],&spec_num[1],&spec_num[2]);
    int i = 0;
    for(i = 1; i <= 100; i++)
    {
        int flag = 0;
        if(i % 10 == spec_num[0] || i / 10 == spec_num[0]){printf("Fizz\n"); continue;}
        if(i % spec_num[0] == 0 && (flag = 1)) printf("Fizz");
        if(i % spec_num[1] == 0 && (flag = 1)) printf("Buzz");
        if(i % spec_num[2] == 0 && (flag = 1)) printf("Whizz");
        if(1 != flag) printf("%d",i);
        printf("\n");
    }
    return EXIT_SUCCESS;
}

輸入:3,5,7io

輸出:
class

相關文章
相關標籤/搜索