0

警告: 私はより良いコードを求めているのではありません。コードを短くするために何ができるかを学ぶために、HackerRank の短いコードを求めています。

私はJavaの初心者で、このFizzBu​​zzの問題を試していました:

1 から 100 までの数字を出力するプログラムを作成します。ただし、3 の倍数の場合は数字の代わりに >"Fizz" を出力し、5 の倍数の場合は "Buzz" を出力します。3 と 5 の両方の倍数 > である数については、「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);}}}

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 文字を失ったかを知っています。とりあえずありがとう。

4

3 に答える 3

5

次のようなものはどうですか:

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

警告:このコードは、コードを短くしようとする試みにすぎません。通常のコードがそうであるべきであるように、それは良いものでも読みやすいものでもありません!

于 2013-11-05T08:14:51.433 に答える