标签: fizzbuzz

替代FizzBu​​zz问题

任何人有任何好的FizzBu​​zz类型的问题不在 FizzBu​​zz问题?

我正在采访某人,而FB相对众所周知而且难以记忆,所以我寻找创意的第一站就是我的新成瘾.

fizzbuzz

86
推荐指数
8
解决办法
4万
查看次数

如何减少if语句

下面的程序可以根据需要运行,但是如何减少if语句的数量.有人告诉我,如果你的函数包含2个或更多if语句,那么你做错了.有什么建议?我尝试过使用switch语句,但由于案例不能成为布尔值,因此无效.

for(int i = 1; i < 100; i++)
        {
        if(i % 10 == 3) 
        {
            System.out.println("Fizz" + "(" + i + ") 3%10");
        }

        if(i / 10 == 3)
        {
            System.out.println("Fizz" + "(" + i + ") 3/10");
        }


        if(i % 10 == 5) 
        {
            System.out.println("Buzz" + "(" + i + ") 5%10");
        }

        if(i / 10 == 5)
        {
            System.out.println("Fizz" + "(" + i + ") 5/10");
        }

        if(i / 10 == 7)
        {
            System.out.println("Fizz" + "(" + …
Run Code Online (Sandbox Code Playgroud)

java if-statement fizzbuzz switch-statement

24
推荐指数
7
解决办法
2万
查看次数

如何在F#中编写Fizzbuzz代码

我目前正在学习F#并尝试过(非常简单的)FizzBu​​zz示例.

这是我最初的尝试:

for x in 1..100 do 
    if x % 3 = 0 && x % 5 = 0 then printfn "FizzBuzz"  
    elif x % 3 = 0 then printfn "Fizz"
    elif x % 5 = 0 then printfn "Buzz"
    else printfn "%d" x
Run Code Online (Sandbox Code Playgroud)

什么解决方案可以更优雅/简单/更好(解释原因)使用F#来解决这个问题?

注意:FizzBu​​zz问题通过数字1到100,每3个打印Fizz,每5个打印Buzz,3和5的每个倍数打印FizzBu​​zz.否则,简单显示数字.

谢谢 :)

f# fizzbuzz

23
推荐指数
6
解决办法
4369
查看次数

写FizzBu​​zz

阅读编码恐怖,我刚刚遇到了FizzBu​​zz.

原帖是在这里:编码恐怖:为什么程序员不能..程序?

对于那些不知道的人:FizzBu​​zz是一款非常受欢迎的儿童游戏.从1到100计数,每次一个数字可以被3调用"Fizz"整除,每次一个数字可以被5调整为"Buzz",并且每次数字可以被3和5整除时,调用"FizzBu​​zz而不是数

但这一次,我刚刚开始编码.这是一分钟的工作,但有几件我不喜欢的事情.

这是我的代码

public void DoFizzBuzz()
{
    var combinations = new Tuple<int, string>[] 
    { 
        new Tuple<int, string> (3, "Fizz"), 
        new Tuple<int, string> (5, "Buzz"), 
    };

    for (int i = 1; i <= 100; ++i)
    {
        bool found = false;

        foreach (var comb in combinations)
        {
            if (i % comb.Item1 == 0)
            {
                found = true;
                Console.Write(comb.Item2);
            }
        }

        if (!found)
        {
            Console.Write(i);
        }

        Console.Write(Environment.NewLine);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 如何摆脱bool发现?
  2. 有没有比foreach更好的测试方法?

c# optimization fizzbuzz

22
推荐指数
10
解决办法
7万
查看次数

Haskell - 漂亮打印列表的问题

我是哈斯克尔的新手,我读完并消化了" 了解你是一件好事",并尝试了一些事情.对于我的第一个项目,我想尝试经典:FizzBu​​zz.所以我想出了以下代码:

import System.IO

fizzBuzz :: (Integral a) => a -> String
fizzBuzz num
    | fizz && buzz = "FizzBuzz"
    | fizz = "Fizz"
    | buzz = "Buzz"
    | otherwise = show num
    where fizz = num `mod` 3 == 0
          buzz = num `mod` 5 == 0

main = print $ map fizzBuzz [1..100]
Run Code Online (Sandbox Code Playgroud)

工作得很好,除了我有一个很难读的相当密集的列表.所以我尝试了这个主要功能:

main = map putStrLn $ map fizzBuzz [1..100]
Run Code Online (Sandbox Code Playgroud)

这给了我错误Couldn't match expected type 'IO t' against inferred type '[IO ()]'.我尝试了六件事,似乎没有任何帮助.做我想做的事情的正确方法是什么?

haskell pretty-print fizzbuzz

11
推荐指数
1
解决办法
2803
查看次数

从1到100,打印"ping"如果是3的倍数,"pong"如果是5的倍数,或者打印数字

我刚从求职面试回家,面试官让我写一个程序:

它应该从1到100,并打印...

如果它是3的倍数,"ping"
如果它是5的倍数,"pong"
Else,打印数字.

如果它是3和5的倍数(如15),它应该打印"ping"和"pong".

我选择了Javascript,并想出了这个:

for (x=1; x <= 100; x++){
    if( x % 3 == 0 ){
        write("ping")
    }
    if( x % 5 == 0 ){
        write("pong")
    }
    if( ( x % 3 != 0 ) && ( x % 5 != 0 ) ){
        write(x)
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我对我的解决方案非常不满意,但我无法找到更好的解决方案.

有谁知道更好的方法吗?它检查了两次,我不喜欢它.我在家里做了一些测试,没有成功,这是唯一一个返回正确答案的测试......

javascript fizzbuzz challenge-response

10
推荐指数
3
解决办法
5万
查看次数

为什么这个Fizz Buzz生成器比这个Fizz Buzz Iterator类快得多?

在了解了迭代器类方法和生成器之后,我使用每个习语测试了简单的Fizz Buzz解决方案的性能特征:

>>> from timeit import timeit
>>> timeit('tuple(fizzbuzz.FizzBuzzIterator(10))', 'import fizzbuzz')
13.281935930252075
>>> timeit('tuple(fizzbuzz.fizz_buzz_generator(10))', 'import fizzbuzz')
7.619534015655518
Run Code Online (Sandbox Code Playgroud)

根据timeit生成器函数比迭代器类1¾倍.

我的问题是:为什么这个Fizz Buzz生成器明显比这个Fizz Buzz Iterator类快?

Fizz Buzz迭代器类

class FizzBuzzIterator:

    def __init__(self, low, high=None):
        if high is None:
            self.high = low
            self.current = 1
        else:
            self.high = high
            self.current = max(low, 1)

    def __iter__(self):
        return self

    def next(self):
        if self.current > self.high:
            raise StopIteration
        else:
            c = self.current
            self.current += 1
            if (c % 5 + c % …
Run Code Online (Sandbox Code Playgroud)

python performance iterator generator fizzbuzz

10
推荐指数
1
解决办法
2163
查看次数

什么使应用程序或软件开发过程"企业"?

在阅读了Wolfbyte关于Enterprise FizzBu​​zz 的答案后,我想到了什么构成了"企业"程序.

什么使应用程序或软件开发过程成为企业

编辑:似乎企业这个词有很多消极性.有没有人真正喜欢编写企业级应用程序?

enterprise fizzbuzz

9
推荐指数
3
解决办法
887
查看次数

Swift 2:'Bool'类型的表达式模式不能匹配'Int'类型的值

我正在做这个问题集"FizzBu​​zz",我的switch语句给了我一些问题,这是我的代码:

func fizzBuzz(n: Int) -> String {   
    switch n {
    case n % 3 == 0: print("Fizz")
    case n % 5 == 0: print("Buzz")
    case n % 15 == 0:print("FizzBuzz")
    }
    return "\(n)"
}
Run Code Online (Sandbox Code Playgroud)

如果你可以提供指针/提示,而不是给我正确的代码,那就会膨胀:D我更喜欢自己解决它,但是一些提示可以让我走出这个洞.

fizzbuzz switch-statement swift

9
推荐指数
2
解决办法
5841
查看次数

Javascript中的FizzBu​​zz程序(详细说明)

有人可以为FizzBu​​zz更正我的这段代码吗?似乎有一个小错误.下面的代码打印所有数字,而不是仅打印不能被3或5整除的数字.

编写从打印数的程序1100.但是对于三的倍数,打印"Fizz"而不是数字,并且对于五的倍数,打印"Buzz".对于三和五的倍数的数字,打印"FizzBuzz".

function isDivisible(numa, num) {
  if (numa % num == 0) {
    return true;
  } else {
    return false;
  }
};

function by3(num) {
  if (isDivisible(num, 3)) {
    console.log("Fizz");
  } else {
    return false;
  }
};

function by5(num) {
  if (isDivisible(num, 5)) {
    console.log("Buzz");
  } else {
    return false;
  }
};

for (var a=1; a<=100; a++) {
  if (by3(a)) {
    by3(a);
    if (by5(a)) {
      by5(a);
      console.log("\n");
    } …
Run Code Online (Sandbox Code Playgroud)

javascript fizzbuzz

8
推荐指数
3
解决办法
3万
查看次数