Solved

# FizzBuzz challenge

Posted on 2016-08-14
90 Views
Hi,

I am working on below challenge

http://codingbat.com/prob/p153059

My psuedo code of the logical approach is
0. construct array within int fromm start till end
1. loop throguh given array
2. find given element is multiple of 3 if yes replace by fizz
3.  find given element is multiple of 5 if yes replace by Buzz
4. return modified array

I wrote my code as below

``````public String[] fizzBuzz(int start, int end) {
int [] arr=null;
for(int i=start;i<(end-1);i++){
arr[i]=i;

if(arr[i]%3==0){
arr[i]="Fizz";
}
else if(arr[i]%5==0){
arr[i]="Buzz";
}

}
return arr;
}
``````

I am not passing all tests

0
Question by:gudii9
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 6
• 2

LVL 101

Expert Comment

ID: 41756344
Go reread the challenge.  You are missing at least 2 key parts.

mlmcc
0

LVL 7

Author Comment

ID: 41756522
``````else if (arr[i]%5==0&&(arr[i]%5==0){
arr[i]="FizzBuzz";
}
``````
i see above condition
0

LVL 7

Author Comment

ID: 41756701
``````public class FizzBuzzChallenge {
public static void main(String[] args) {
System.out.println("value is-->"+fizzBuzz(1, 6));
}

public static String[] fizzBuzz(int start, int end) {
String [] arr=null;
for(int i=start;i<(end-1);i++){
arr[i]=String.valueOf(i);

if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
}
else if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
}
}
return arr;
}

}
``````

i am getting NPE as below

at FizzBuzzChallenge.fizzBuzz(FizzBuzzChallenge.java:10)
at FizzBuzzChallenge.main(FizzBuzzChallenge.java:4)

``````public String[] fizzBuzz(int start, int end) {
String [] arr=null;
for(int i=start;i<(end-1);i++){
arr[i]=String.valueOf(i);

if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
}
else if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
}
}
return arr;
}
``````

Expected      Run
fizzBuzz(1, 6) â†’ ["1", "2", "Fizz", "4", "Buzz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(1, 8) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(1, 11) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(1, 16) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(1, 4) â†’ ["1", "2", "Fizz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(1, 2) â†’ ["1"]      null      X
fizzBuzz(50, 56) â†’ ["Buzz", "Fizz", "52", "53", "Fizz", "Buzz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(15, 17) â†’ ["FizzBuzz", "16"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(30, 36) â†’ ["FizzBuzz", "31", "32", "Fizz", "34", "Buzz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(1000, 1006) â†’ ["Buzz", "1001", "Fizz", "1003", "1004", "FizzBuzz"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(99, 102) â†’ ["Fizz", "Buzz", "101"]      Exception:java.lang.NullPointerException (line number:4)      X
fizzBuzz(14, 20) â†’ ["14", "FizzBuzz", "16", "17", "Fizz", "19"]      Exception:java.lang.NullPointerException (line number:4)      X
other tests

How to resolve this issue?
0

LVL 7

Author Comment

ID: 41756720
``````public String[] fizzBuzz(int start, int end) {
String [] arr=new String[(end-start)];
for(int i=start;i<(end-1);i++){
arr[i]=String.valueOf(i);

if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
}
else if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
}
}
return arr;
}
``````

above fails below tests
Expected      Run
fizzBuzz(1, 6) â†’ ["1", "2", "Fizz", "4", "Buzz"]      [null, "1", "2", "Fizz", "4"]      X
fizzBuzz(1, 8) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"]      [null, "1", "2", "Fizz", "4", "Buzz", "Fizz"]      X
fizzBuzz(1, 11) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]      [null, "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz"]      X
fizzBuzz(1, 16) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]      [null, "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14"]      X
fizzBuzz(1, 4) â†’ ["1", "2", "Fizz"]      [null, "1", "2"]      X
fizzBuzz(1, 2) â†’ ["1"]      [null]      X
fizzBuzz(50, 56) â†’ ["Buzz", "Fizz", "52", "53", "Fizz", "Buzz"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 50 (line number:4)      X
fizzBuzz(15, 17) â†’ ["FizzBuzz", "16"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 15 (line number:4)      X
fizzBuzz(30, 36) â†’ ["FizzBuzz", "31", "32", "Fizz", "34", "Buzz"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 30 (line number:4)      X
fizzBuzz(1000, 1006) â†’ ["Buzz", "1001", "Fizz", "1003", "1004", "FizzBuzz"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 1000 (line number:4)      X
fizzBuzz(99, 102) â†’ ["Fizz", "Buzz", "101"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 99 (line number:4)      X
fizzBuzz(14, 20) â†’ ["14", "FizzBuzz", "16", "17", "Fizz", "19"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 14 (line number:4)      X
other tests
X
Your progress graph for this problem
``````import java.util.Arrays;

public class FizzBuzzChallenge {
public static void main(String[] args) {
System.out.println("value is-->"+Arrays.toString(fizzBuzz(1, 6)));
}

public static String[] fizzBuzz(int start, int end) {
String [] arr=new String[(end-start)];
for(int i=start;i<(end-1);i++){
arr[i]=String.valueOf(i);

if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
}
else if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
}
}
return arr;
}

}
``````
value is-->[null, 1, 2, Fizz, 4]
0

LVL 101

Assisted Solution

mlmcc earned 250 total points
ID: 41756762
I am not a Java programmer but in some languages arrays are indexed from 0.
If Java is such you need to account for it.

WHen you run for 50 to 56 the array is not indexed with 50, 51, etc.  You have to adjust the index or the values entered.

mlmcc
0

LVL 21

Accepted Solution

Amitkumar Panchal earned 250 total points
ID: 41758099
I found couple of logical issues and corrected the code with comments.

``````public String[] fizzBuzz(int start, int end) {
String [] arr=new String[(end-start)];

for(int n=start;n<end;n++){
int i = n-start; // Calculation of number was missing
arr[i]=String.valueOf(start+i);

// Corrected the condition order
if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
} else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
} else if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
}
return arr;
}
``````
0

LVL 7

Author Comment

ID: 41758130
int i = n-start; // Calculation of number was missing

why we need above step? which number?
0

LVL 7

Author Comment

ID: 41758413
``````public String[] fizzBuzz(int start, int end) {
int len =end-start;
String [] arr=new String[(len)];
for(int k=start;k<(end);k++){
arr[k-1]=String.valueOf(k);
}
for(int i=0;i<(len);i++){
if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
}
else if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
}
}
return arr;
}
``````

Expected      Run
fizzBuzz(1, 6) â†’ ["1", "2", "Fizz", "4", "Buzz"]      ["1", "2", "Fizz", "4", "Buzz"]      OK
fizzBuzz(1, 8) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"]      ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"]      OK
fizzBuzz(1, 11) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]      ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]      OK
fizzBuzz(1, 16) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]      ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]      OK
fizzBuzz(1, 4) â†’ ["1", "2", "Fizz"]      ["1", "2", "Fizz"]      OK
fizzBuzz(1, 2) â†’ ["1"]      ["1"]      OK
fizzBuzz(50, 56) â†’ ["Buzz", "Fizz", "52", "53", "Fizz", "Buzz"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 49 (line number:5)      X
fizzBuzz(15, 17) â†’ ["FizzBuzz", "16"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 14 (line number:5)      X
fizzBuzz(30, 36) â†’ ["FizzBuzz", "31", "32", "Fizz", "34", "Buzz"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 29 (line number:5)      X
fizzBuzz(1000, 1006) â†’ ["Buzz", "1001", "Fizz", "1003", "1004", "FizzBuzz"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 999 (line number:5)      X
fizzBuzz(99, 102) â†’ ["Fizz", "Buzz", "101"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 98 (line number:5)      X
fizzBuzz(14, 20) â†’ ["14", "FizzBuzz", "16", "17", "Fizz", "19"]      Exception:java.lang.ArrayIndexOutOfBoundsException: 13 (line number:5)      X
other tests
X
Your progress graph for this problem
0

LVL 7

Author Comment

ID: 41758418
``````public String[] fizzBuzz(int start, int end) {
int len =end-start;
String [] arr=new String[(len)];
for(int k=start;k<(end);k++){
arr[k-start]=String.valueOf(k);
}
for(int i=0;i<(len);i++){
if( (Integer.parseInt(arr[i]) )%3==0  && (Integer.parseInt(arr[i]) )%5==0){
arr[i]="FizzBuzz";
}
else if(  (Integer.parseInt(arr[i]) ) %3==0){
arr[i]="Fizz";
}
else if((Integer.parseInt(arr[i]) )%5==0){
arr[i]="Buzz";
}
}
return arr;
}
``````

i  fixed above issue passign all tests. any modifications/improvements/refinements to above code?
Expected      Run
fizzBuzz(1, 6) â†’ ["1", "2", "Fizz", "4", "Buzz"]      ["1", "2", "Fizz", "4", "Buzz"]      OK
fizzBuzz(1, 8) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"]      ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"]      OK
fizzBuzz(1, 11) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]      ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]      OK
fizzBuzz(1, 16) â†’ ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]      ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]      OK
fizzBuzz(1, 4) â†’ ["1", "2", "Fizz"]      ["1", "2", "Fizz"]      OK
fizzBuzz(1, 2) â†’ ["1"]      ["1"]      OK
fizzBuzz(50, 56) â†’ ["Buzz", "Fizz", "52", "53", "Fizz", "Buzz"]      ["Buzz", "Fizz", "52", "53", "Fizz", "Buzz"]      OK
fizzBuzz(15, 17) â†’ ["FizzBuzz", "16"]      ["FizzBuzz", "16"]      OK
fizzBuzz(30, 36) â†’ ["FizzBuzz", "31", "32", "Fizz", "34", "Buzz"]      ["FizzBuzz", "31", "32", "Fizz", "34", "Buzz"]      OK
fizzBuzz(1000, 1006) â†’ ["Buzz", "1001", "Fizz", "1003", "1004", "FizzBuzz"]      ["Buzz", "1001", "Fizz", "1003", "1004", "FizzBuzz"]      OK
fizzBuzz(99, 102) â†’ ["Fizz", "Buzz", "101"]      ["Fizz", "Buzz", "101"]      OK
fizzBuzz(14, 20) â†’ ["14", "FizzBuzz", "16", "17", "Fizz", "19"]      ["14", "FizzBuzz", "16", "17", "Fizz", "19"]      OK
other tests
OK
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable â€¦
Progress
###### Suggested Courses
Course of the Month5 days, 21 hours left to enroll