c_cpp FizzBuzz只用了一点点就解决了。它本质上使用两个确定性有限自动机进行可分性测试。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp FizzBuzz只用了一点点就解决了。它本质上使用两个确定性有限自动机进行可分性测试。相关的知识,希望对你有一定的参考价值。
#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 FizzBuzz只用了一点点就解决了。它本质上使用两个确定性有限自动机进行可分性测试。的主要内容,如果未能解决你的问题,请参考以下文章
C#FizzBu zz交换机解决方案
javascript FizzBuzz
javascript FizzBuzz
javascript FizzBuzz
markdown FizzBuzz
python FizzBuzz.py