警告:我不是要求更好的代码,我要求的是更短的 HackerRank 代码,只是为了了解可以做些什么来缩短它。
我是 Java 新手,正在尝试这个 FizzBuzz 问题:
编写一个打印从 1 到 100 的数字的程序。但是对于 3 的倍数打印 >“Fizz”而不是数字,对于 5 的倍数打印“Buzz”。对于 > 是 3 和 5 的倍数的数字,打印“FizzBuzz”。
我尽可能短地编写了我的解决方案。
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);}}}
我得到了 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);}}}
看来我摆脱了 14 个字符。天知道其他人做了什么,又失去了 13 个字符。总之感谢。