c_cpp FizzBu​​zz只用了一点点就解决了。它本质上使用两个确定性有限自动机进行可分性测试。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp FizzBu​​zz只用了一点点就解决了。它本质上使用两个确定性有限自动机进行可分性测试。相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
int f0(unsigned int x) { return x? (x&(1<<31)? f1(x<<1) : f0(x<<1)) : 1; }
int f1(unsigned int x) { return x? (x&(1<<31)? f3(x<<1) : f2(x<<1)) : 0; }
int f2(unsigned int x) { return x? (x&(1<<31)? f0(x<<1) : f4(x<<1)) : 0; }
int f3(unsigned int x) { return x? (x&(1<<31)? f2(x<<1) : f1(x<<1)) : 0; }
int f4(unsigned int x) { return x? (x&(1<<31)? f4(x<<1) : f3(x<<1)) : 0; }

int t0(unsigned int x) { return x? (x&(1<<31)? t1(x<<1) : t0(x<<1)) : 1; }
int t1(unsigned int x) { return x? (x&(1<<31)? t0(x<<1) : t2(x<<1)) : 0; }
int t2(unsigned int x) { return x? (x&(1<<31)? t2(x<<1) : t1(x<<1)) : 0; }

int main(void) {
    unsigned int i;
    for(i=1; i <= 100; i++) {
        if(t0(i)) printf("Fizz");
        if(f0(i)) printf("Buzz");
        if(!(t0(i)|f0(i))) printf("%u",i);
        printf("\n");
    }
}

以上是关于c_cpp FizzBu​​zz只用了一点点就解决了。它本质上使用两个确定性有限自动机进行可分性测试。的主要内容,如果未能解决你的问题,请参考以下文章

C#FizzBu zz交换机解决方案

javascript FizzBu​​zz

javascript FizzBu​​zz

javascript FizzBu​​zz

markdown FizzBu​​zz

python FizzBu​​zz.py