首页 文章

生成新字符串数组的输出未按预期进行

提问于
浏览
0

你有两个整数,n1和n2作为输入 . 将包含从n1到n2的数字的新String []作为字符串返回,除了3的倍数,使用“Fizz”而不是数字,对于5的倍数使用“Buzz”,对于3和5的倍数使用“ FizzBuzz

样本输入#1

产生(2,8)

样本输出#1

{ “2”, “嘶嘶声”, “4”, “嗡嗡”, “嘶嘶声”, “7”, “8”}

样本输入#2

生成(10,16)

样本输出#2

{ “嗡嗡”, “11”, “嘶嘶声”, “13”, “14”, “FizzBuzz”,16}

MyApproach

我正在检查从n1到n2,其中nos可以被3和5整除,并且可以被5整除 . 如果它可以被3整除,我将该字符串存储为strnew,可以被5个存储整除,该字符串在strnew中存储该字符串在strnew,

public String[] generate(int start, int stop)
 {
   String strnew[]=new String[stop-start+1];

   {
    for(int i=start;i<=stop;i++)

    {

      if((i%3==0)&&(i%5==0))
      strnew[i]="FizzBuzz";
      else if(i%3==0)
      strnew[i]="Fizz";
      else if(i%5==0)
      strnew[i]="Buzz";
      else
      strnew[i]=""+i;
    } 

    return strnew;
  }

 }

我的问题:

我做错了什么?任何人都可以指导我 .

产量

Parameters  Actual Output   Expected Output

'2' '8'     null            {'2','Fizz','4','Buzz','Fizz','7','8'}

2 回答

  • 2

    您需要抵消存储阵列中的位置( start 不是 0 ) . 在 strnew 之后不需要块,我更喜欢 ifelse if 块上的大括号 . 就像是,

    static String[] generate(int start, int stop) {
        String strnew[] = new String[stop - start + 1];
        for (int i = 0; i < strnew.length; i++) {
            int value = start + i;
            if (value % 15 == 0) {
                strnew[i] = "FizzBuzz";
            } else if (value % 3 == 0) {
                strnew[i] = "Fizz";
            } else if (value % 5 == 0) {
                strnew[i] = "Buzz";
            } else {
                strnew[i] = String.valueOf(value);
            }
        }
        return strnew;
    }
    
  • 0
    public String[] generate(int start, int stop){
        String ar[]=new String[stop-start+1];
        int num=start;
        String s1="Fizz";
        String s2="Buzz";
        String s3="FizzBuzz";
        for(int i=0;i<ar.length;i++){
            if((num%3==0)&&(num%5!=0)){
                ar[i]=s1;
            }
           else if((num%5==0)&&(num%3!=0)){
                ar[i]=s2;
            }
            else if((num%3==0)&&(num%5==0)){
                ar[i]=s3;
            }
            else{
                String str="";
                str=str+num;
                ar[i]=str;
            }
            num=num+1;
        }
    
        return ar;
    }
    

相关问题