博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用代码挑战
阅读量:5862 次
发布时间:2019-06-19

本文共 1754 字,大约阅读时间需要 5 分钟。

hot3.png

    思路: 输入3个数x,y,z,根据不同的条件输出不同的字符串,

    x 的倍数 输出 Fizz, y 的倍数 输出 Buzz,  z 的倍数 输出 Whizz ...

    原题要求总共有 8种输出,  1)该数本身, 2)Fizz, 3)Buzz, 4)Whizz, 5)FizzBuzz.....8)FizzBuzzWhizz

    如果用3位二进制 来表示输出的字符  000:该数本身, 001:Fizz ,010:Buzz, 100:Whizz, 011:FizzBuzz, 110:BuzzWhizz ...

    用十进制表示就是                    0:该数本身,  1:Fizz,   2:Buzz,   4:Whizz,   3:FizzBuzz,   6:BuzzWhizz...

    用一个level表示一个数该对应哪些输出, 是x的倍数, level=(001)=1;  是y的倍数,level=(010)=2; 是x,y的公倍数 则level =(011)= 1+2; 是y,z的倍数,level=(110)=2+4;以此类推

    最后判断这个数包不包含x,认为x=0,x!=0两种情况 若包含x,则level=1

    下面只需要 i=1:100,遍历计算每一个i对应的level值,将其输出即可

#include 
 void print(int i,int level) {     switch(level)     {     case 0:        printf("%d\n",i);        break;     case 1:        printf("Fizz\n");        break;     case 2:        printf("Buzz\n");        break;     case 3:        printf("FizzBuzz\n");        break;     case 4:        printf("Whizz\n");        break;     case 5:        printf("FizzWhizz\n");        break;     case 6:        printf("BuzzWhizz\n");        break;     case 7:        printf("FizzBuzzWhizz\n");        break;     default:        break;     } } int main() {     int x,y,z;     int i=0;     int level;     scanf("%d,%d,%d",&x,&y,&z);     while(++i<=100)     {         level = 0;         // 判断保证除数不为0         if(x && !(i%x)) level += 1;         if(y && !(i%y)) level += 2;          if(z && !(i%z)) level += 4;          if(!x) // x == 0 只需要判断个位数是不是0,即可判断包不包含x         {          // i+10 保证 i<10的时候不被错判          if(!((i+10)%10)) level =1;         }         else                 {           if((i%10)==x || (i/10)==x || (i/100)==x/* only x==1 && i==100 */)            level = 1;         }         printf("%3d: ",i); /// 这一行为了方便观察输出         print(i, level);              }     return 0; }

转载于:https://my.oschina.net/beetlerx/blog/228790

你可能感兴趣的文章
设置默认的超时和重试是一个基础设施的基本素养
查看>>
Spring boot 默认静态资源路径与手动配置访问路径
查看>>
Shell学习日记
查看>>
[解题报告]424 - Integer Inquiry
查看>>
江苏省地理国情质检处理系统使用说明
查看>>
[K/3Cloud] 分录行复制和新增行的冲突如何处理
查看>>
基础数据挖掘--途牛网
查看>>
JS截取字符串
查看>>
第162天:canvas中Konva库的使用方法
查看>>
SPOJ Problem 24:Small factorials
查看>>
axios简单介绍
查看>>
华为服务器内存插法
查看>>
怎样才能无需训练也能成为武林高手
查看>>
9.8 RESTORE 命令
查看>>
我如何学习:追随好奇心
查看>>
软件测试2019:第四次作业
查看>>
Spark applications global color schemes
查看>>
字符串方法总结
查看>>
分页实现
查看>>
弹出式日历源代码--PMCalendar
查看>>