fizzbuzz - 可以更短吗?

don*_*ono 0 java 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 个角色。不管怎样,谢谢。

Jea*_*art 5

怎么样:

for(int i=0;i++<100;System.out.println((i%3>0?"":"Fizz")+(i%5>0?i%3>0?i:"":"Buzz")))
Run Code Online (Sandbox Code Playgroud)

警告:此代码只是尝试使代码更短的练习。它既不好也不可读,就像普通代码应该尝试的那样!

  • 这应该带有**不要在家尝试**警告。人们可能会将它与好的代码混淆。 (10认同)