标签: fizzbuzz

fizzbuzz - 可以更短吗?

警告:我不是要更好的代码,我是要为 HackerRank 提供更短的代码,只是为了了解可以做些什么来缩短它。

我是 Java 新手,正在尝试这个 FizzBu​​zz 问题:

编写一个程序,打印从 1 到 100 的数字。但是对于 3 的倍数打印 >“Fizz”而不是数字,对于 5 的倍数打印“Buzz”。对于 > 是三和五的倍数的数字,打印“FizzBu​​zz”。

我尽可能短地写了我的解决方案。

class Solution{
public static void main(String[]b){
for(int i=1;i<101;i++){
String a=(i%3==0)?(i%5==0)?"FizzBuzz":"Fizz":(i%5==0)?"Buzz":i+"";
System.out.println(a);}}}
Run Code Online (Sandbox Code Playgroud)

我得了 3.6 分。但显然还有改进的空间,因为有些人写的少了 27 个字符。这怎么可能?有什么建议?我真的不在乎排名,我只是想知道我错过了什么。

编辑:所以在你的帮助下,我做到了:

class Solution{public static void main(String[]b){for(int i=1;i<101;i++){System.out.println((i%3==0)?(i%5==0)?"FizzBuzz":"Fizz":(i%5==0)?"Buzz":i);}}}
Run Code Online (Sandbox Code Playgroud)

似乎我摆脱了 14 个字符。天知道其他人做了什么,又失去了 13 个角色。不管怎样,谢谢。

java fizzbuzz

0
推荐指数
1
解决办法
2872
查看次数

使用while循环的Fizz Buzz脚本卡在无限循环中 - php

我正在尝试使用while循环来编写Fizz Buzz脚本,以循环显示数字,1-100并将echo每个数字循环到屏幕.

我正在使用模数运算符来查找数字是否为以下数字的倍数:

  • 3在这种情况下它回声Fizz,
  • 5在这种情况下它回声Buzz,
  • 或者如果它是3和5的倍数,那么它就会回归FizzBu​​zz

我已经编写了下面的代码,测试了它的所有部分,它似乎工作,但是当我运行脚本时,它会陷入无限循环,回显Fizz.

$i = 1;

while ($i <= 100) {

    if ((3 % $i) === 0) {
        echo 'Fizz';
        $i = $i++;
    } else if ((5 % $i) === 0) {    
        $i = $i++;
        echo 'Buzz';        
    } else if ( ((3 % $i) === 0) && ((5 % $i) === 0)){
        echo 'FizzBuzz';
    } else {
        echo $i++;
    }

}
Run Code Online (Sandbox Code Playgroud)

有什么想法我错了吗?

php fizzbuzz while-loop

-2
推荐指数
1
解决办法
1203
查看次数

汇编中的 FizzBu​​zz - 分段错误

我正在尝试在 Assembly 中编写 FizzBu​​zz,但我一直看到分段错误。到目前为止,我已经确定这不是我的打印例程(因为我已经删除了它们的内容并且问题仍然存在)并且错误隐藏在主函数中的某个位置。

当我运行程序时,我得到了这个输出:

fizzSegmentation fault
Run Code Online (Sandbox Code Playgroud)

让我相信这不是使用除法和查找余数的问题。但我可能是错的,我已经两年没有做过汇编了......

SECTION .data
global _start
    fizz: db "fizz", 4
    buzz: db "buzz", 4

SECTION .bss
    counter: resb    1

SECTION .text
_start:

    mov ax,0
    mov [counter],ax

main_loop:

    cmp ax,100          ;from 0 to 100
    je  exit            ;
    mov bl,3            ;divisor
    mov ah,0            ;here will be a remainder
    div bl              ;divide
    cmp ah,0            ;compare the remainder with 0
    je  print_fizz      ;print fizz if they equal
    mov bl,5            ;new divisor
    mov ah,0            ;do I have to do …
Run Code Online (Sandbox Code Playgroud)

assembly fizzbuzz yasm

-2
推荐指数
1
解决办法
2171
查看次数

另一个FizzBu​​zz解决方案

我当时在求职面试中,被要求用PHP解决FizzBu​​zz。

编写一个程序,打印从1到100的数字。但是,对于三个打印数字“ Fizz”(而不是数字)的倍数,以及五个打印“嗡嗡声”的倍数。对于三和五的倍数的数字,请打印“ FizzBu​​zz”。

我以前从未听说过FizzBu​​zz,但以下是我的解决方法:

for ($i = 1; $i <= 100; $i++){
   if($i / 3 == round($i / 3) && $i / 5 == round($i / 5)){
      echo $i . " is FizzBuzz<br />";
   }
   else if($i / 3 == round($i / 3)){
      echo $i . " is Fizz<br />";
   }
   else if($i / 5 == round($i / 5)){
      echo $i . " is Buzz<br />";
   }
   else {
      echo $i."<br />";
   }
}
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,没有找到任何解决方案,这让我想到也许是有问题的,这是我发现的最接近我的解决方案之一:

for ($i = 1; …
Run Code Online (Sandbox Code Playgroud)

php fizzbuzz

-2
推荐指数
2
解决办法
4490
查看次数

Rust 中的 FizzBu​​zz 函数

这是我的代码:

fn main() { 
  fn fizz_buzz<'a>(i: i32) -> &'a str { 

    if i % 15 == 0 { 
        "FizzBuzz"
    } else if i % 5 == 0 { 
        "Buzz"
    } else if i % 3 == 0 { 
        "Fizz"
    } else { 
        &i.to_string()
    }
  }

  for i in 1..101 { 
    println!("{}" , fizz_buzz(i));
  }
}
Run Code Online (Sandbox Code Playgroud)

编译器给我这个错误:

error[E0515]: cannot return reference to temporary value
  --> src/main.rs:11:9
   |
11 |         &i.to_string()
   |         ^-------------
   |         ||
   |         |temporary value created here
   |         returns …
Run Code Online (Sandbox Code Playgroud)

fizzbuzz rust lifetime-scoping

-2
推荐指数
1
解决办法
413
查看次数

如何使用C#对此方法进行单元测试

我有以下方法,我想对其进行单元测试.可以对方法签名进行更改:

public void PrintNumber()
{
    Enumerable.Range(1, 100).ToList().ForEach(x =>
    {
        if (x % 3 == 0 && x % 5 == 0)
            Console.WriteLine("[35]");
        else if (x % 3 == 0)
            Console.WriteLine("[3]");
        else if (x % 5 == 0)
            Console.WriteLine("[5]");
        else
            Console.WriteLine(x.ToString());
    });
}
Run Code Online (Sandbox Code Playgroud)

我有自己的解决方案,但我想知道我的版本是否最好.

谢谢!

c# nunit unit-testing mstest fizzbuzz

-3
推荐指数
1
解决办法
967
查看次数

这是什么最好的解决方案?(任何语言)

这是一个问题.有人能找到答案吗?

允许最多两个"if"测试!

Given numbers from 1 to 100
If this number is divisble by 21 print "foobar"
If this number is divisble by 7 print "bar"
If this number is divisble by 3 print "foo"
If none of the above, print the number
Run Code Online (Sandbox Code Playgroud)

只打印一个数字.例如,数字21应该只打印"foobar",而不是所有"foobar","bar","foo".

可以用任何语言完成.

非常感谢.

language-agnostic algorithm fizzbuzz

-3
推荐指数
1
解决办法
3823
查看次数

Python FizzBu​​zz

我已经在Python中提出了这个问题:

从用户处获取一个数字列表,然后在该列表中运行FizzBu​​zz.

循环浏览列表时,请记住以下规则:

1)如果数字可以被3和5打印整除 FizzBuzz

2)如果它只能被3个打印整除 Fizz

3)如果它只能被5个打印整除 Buzz

4)否则只需打印数字

还记得elif!

我创建了以下脚本,但它在if上给出了一个错误 n%3=True

n=input()
    if n%3=True:
        print("Fizz")
    else if n%5=True:
        print ("Buzz")
    elif print n
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?非常感谢你!

python fizzbuzz python-2.7

-6
推荐指数
2
解决办法
5127
查看次数

c ++ fizzbuzz switch语句?

我试图看看我是否可以制作一个fizzbuzz c ++ switch语句.我收到一个错误,说我在const表达式中不可用.这是否意味着我无法使这件事发挥作用?还是有工作吗?这是我的代码.

#include <iostream>
using namespace std;

int main() {
    for(int = 1; 1 <= 100; i++){
        switch(true){

            case(i % 3 == 0 & i % 5 == 0):
                cout << "fizzbuzz" << endl;
                break;

            case(i % 3 == 0):
                cout << "fizz" << endl;
                break;

            case(i % 5 == 0):
                cout << "fizz" << endl;
                break;
            default:
                cout << i << endl;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ for-loop fizzbuzz switch-statement

-8
推荐指数
1
解决办法
344
查看次数