Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Hi,

I am working on below challenge

http://codingbat.com/prob/p199484

Psedo code description of approach :

1. create new array of given array size

2. loop given array in for loop

3. check each element value not greater than 10

4. if yes multiply by 10

5 if no give same value from given array to new array

I wrote my code as below

I am not passing all tests

Expected Run

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20] [20, 10, 30, 40, 20, 50] X

tenRun([10, 1, 20, 2]) → [10, 10, 20, 20] [10, 10, 20, 20] OK

tenRun([10, 1, 9, 20]) → [10, 10, 10, 20] [10, 10, 90, 20] X

tenRun([1, 2, 50, 1]) → [1, 2, 50, 50] [10, 20, 50, 10] X

tenRun([1, 20, 50, 1]) → [1, 20, 50, 50] [10, 20, 50, 10] X

tenRun([10, 10]) → [10, 10] [10, 10] OK

tenRun([10, 2]) → [10, 10] [10, 20] X

tenRun([0, 2]) → [0, 0] [0, 20] X

tenRun([1, 2]) → [1, 2] [10, 20] X

tenRun([1]) → [1] [10] X

tenRun([]) → [] [] OK

other tests

X

How to improve my design, approach, code? please advise

I am working on below challenge

http://codingbat.com/prob/p199484

Psedo code description of approach :

1. create new array of given array size

2. loop given array in for loop

3. check each element value not greater than 10

4. if yes multiply by 10

5 if no give same value from given array to new array

I wrote my code as below

```
public int[] tenRun(int[] nums) {
int len =nums.length;
int[] arr=new int[len];
for(int i=0;i<len;i++){
if(nums[i]<10){
arr[i]=nums[i]*10;
}
else{
arr[i]=nums[i];
}
}
return arr;
}
```

I am not passing all tests

Expected Run

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20] [20, 10, 30, 40, 20, 50] X

tenRun([10, 1, 20, 2]) → [10, 10, 20, 20] [10, 10, 20, 20] OK

tenRun([10, 1, 9, 20]) → [10, 10, 10, 20] [10, 10, 90, 20] X

tenRun([1, 2, 50, 1]) → [1, 2, 50, 50] [10, 20, 50, 10] X

tenRun([1, 20, 50, 1]) → [1, 20, 50, 50] [10, 20, 50, 10] X

tenRun([10, 10]) → [10, 10] [10, 10] OK

tenRun([10, 2]) → [10, 10] [10, 20] X

tenRun([0, 2]) → [0, 0] [0, 20] X

tenRun([1, 2]) → [1, 2] [10, 20] X

tenRun([1]) → [1] [10] X

tenRun([]) → [] [] OK

other tests

X

How to improve my design, approach, code? please advise

Work on the pseudo code, not the code.

Do you realize you are actually failing

The only cases that pass are those where the input string is already in final form.

You can not improve your English comprehension by studying Java.

You might be able to improve your Java skills by slowing down and working on one question at a time.

But I've said that several times already and you don't seem to agree.

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20]i thought above should be as below according to challenge description?

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20,

please advise

You can use it in this challenge to determine whether a number is a multiple of ten .

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html

http://www.javaranch.com/drive/modulo.html

https://www.google.com/?gws_rd=ssl#q=modulus+operator+java

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 10]

Why do you think that? What does the challenge say?

What do you think the results of the following should be:

tenRun([2, 20, 3, 4, 10, 5]) → ???

For each multiple of 10 in the given array, change all the values following it to be that multiple of 10, until encountering another multiple of 10. So {2, 10,tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20]3, 4,20,} yields {2,510, 10, 10, 20, 20}.//however 3,4 became 10.10 i thought 5 should become 10

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20]

tenRun([10, 1, 20, 2]) → [10, 10, 20, 20]

tenRun([10, 1, 9, 20]) → [10, 10, 10, 20]

i thought above should be as below according to challenge description?

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 10]

What do you think the results of the following should be:

tenRun([2,

What multiple of 10 does the 5 follow???

What do you think the results of the following should be:

tenRun([2, 20, 3, 4, 10, 5]) → ???tenRun([2, 20, 10, 10, 10, 10])

No, that is not correct

For each multiple of 10 in the given array, change all the values following it to be

```
Doing it by hand:
tenRun([2, 20, 3, 4, 10, 5]
2 - no change
20 - multiple of 10 - no change
3 - change it 20 since it follows that multiple of 10
4 - change it 20 since it follows that multiple of 10
10 - multiple of 10 - no change
5 - change it 10 since it follows that multiple of 10
```

You don't change the values that are multiples of 10.And you don't change any values before the first multiple of 10.

tenRun([2,

```
>> However 3,4 became 10.10 i thought 5 should become 10
What multiple of 10 does the 5 follow???//[b]not sure what it means..10*0 is 0 10*1 is 10 so 5 falls in between 0 and 5..when you say What multiple of 10 does the 5 follow i am not following it?[/b]
What do you think the results of the following should be:
tenRun([2, 20, 3, 4, 10, 5]) → ???tenRun([2, 20, 10, 10, 10, 10])
No, that is not correct
For each multiple of 10 in the given array, change all the values following it to be that multiple of 10
Doing it by hand:
tenRun([2, 20, 3, 4, 10, 5]
2 - no change
20 - multiple of 10 - no change
3 - change it 20 since it follows that multiple of 10
4 - change it 20 since it follows that multiple of 10
10 - multiple of 10 - no change
5 - change it 10 since it follows that multiple of 10//[b][i]but challenge expecting to change it to 20 not 10[/i][/b]
```

tenRun([2, 10, 3, 4, 20, 5]

>> However 3,4 became 10.10 i thought 5 should become 10

What multiple of 10 does the 5 follow???

>> not sure what it means..10*0 is 0 10*1 is 10 so 5 falls in between 0 and 5..when you say

What multiple of 10 does the 5 follow i am not following it?[/b]

What multiple of 10 does the 5 follow

is the same as

What multiple of 10 comes before 5

still thinking above

What multiple of 10 does the 5 follow in the array?

is the same as

What multiple of 10 comes before 5 in the array?

The answer in this case is 20. -- So change the 5 to 20.

For

change all the values following it (in the array) to be

```
public int[] tenRun(int[] nums) {
int len =nums.length;
int[] arr=new int[len];
for(int i=0;i<len;i++){
if((nums[i]/10)==0){
arr[i]=10*(nums[i]%10);
}
else{
arr[i]=nums[i];
}
}
return arr;
}
```

i think now i understood challene trying to fix it and failing due to not able to start from first occurence of 10 multiple but starting from index 0

Expected Run

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20] [20, 10, 30, 40, 20, 50] X

tenRun([10, 1, 20, 2]) → [10, 10, 20, 20] [10, 10, 20, 20] OK

tenRun([10, 1, 9, 20]) → [10, 10, 10, 20] [10, 10, 90, 20] X

tenRun([1, 2, 50, 1]) → [1, 2, 50, 50] [10, 20, 50, 10] X

tenRun([1, 20, 50, 1]) → [1, 20, 50, 50] [10, 20, 50, 10] X

tenRun([10, 10]) → [10, 10] [10, 10] OK

tenRun([10, 2]) → [10, 10] [10, 20] X

tenRun([0, 2]) → [0, 0] [0, 20] X

tenRun([1, 2]) → [1, 2] [10, 20] X

tenRun([1]) → [1] [10] X

tenRun([]) → [] [] OK

other tests

X

Your progress graph for this problem

That is wrong.

You have to start at 0 to look for the first multiple of 10.

What is your pseudo code?

Yes, but your code is not even close.

Where is your pseudo code?

Psedo code description of approach :

1. create new array of given array size

2. loop given array in for loop

3. check each element value modulus is 0(ie reminder)

4. if yes multiply subsequent elements by same previous element value?

5 if no give same value from given array to new array

how to use moduls operator for this challenge?You can search for the condition

```
nums[i]%10) == 0
```

that will be true for multiples of ten.
4. if yes multiply subsequent elements by same previous element value?No. As d-glitch has posted

... MULTIPLY are not mentioned in the Challenge.Multiply is an arithmetic operation. If we multiply 3 by 4 the result is 12. The numbers that are multiples of ten are 10, 20 ,30, 40, and so on.

```
public int[] tenRun(int[] nums) {
int totalLen =nums.length;
//int[] arr=new int[len];
int firstVal=0;
for(int i=0;i<totalLen;i++){
if((nums[i]%10)==0){
firstVal=i;
break;
}
}
for(int k=firstVal;k<totalLen;k++){
if((nums[k]%10)==0){
secondVal=k;
break;
}
}
return nums;
}
```

i tried above approach. I have to print all values between firstval and secondval which i am not able to figure out how to proceed further esp if there is thirdval and fourthvale etc

```
public int[] tenRun(int[] nums) {
int totalLen =nums.length;
//int[] arr=new int[len];
int val=0;
boolean tenFlag=false;
for(int i=0;i<totalLen;i++){
if((nums[i]%10)==0){
val=nums[i];
tenFlag=true;
}
else if((nums[i]%10)!=0&&tenFlag){
nums[i]=val;
}
}
return nums;
}
```

now I passed all tests

Expected

Run

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20] [2, 10, 10, 10, 20, 20] OK

tenRun([10, 1, 20, 2]) → [10, 10, 20, 20] [10, 10, 20, 20] OK

tenRun([10, 1, 9, 20]) → [10, 10, 10, 20] [10, 10, 10, 20] OK

tenRun([1, 2, 50, 1]) → [1, 2, 50, 50] [1, 2, 50, 50] OK

tenRun([1, 20, 50, 1]) → [1, 20, 50, 50] [1, 20, 50, 50] OK

tenRun([10, 10]) → [10, 10] [10, 10] OK

tenRun([10, 2]) → [10, 10] [10, 10] OK

tenRun([0, 2]) → [0, 0] [0, 0] OK

tenRun([1, 2]) → [1, 2] [1, 2] OK

tenRun([1]) → [1] [1] OK

tenRun([]) → [] [] OK

other tests

OK

```
public int[] tenRun(int[] nums) {
int current = 1;
for(int i=0;i<nums.length; i++){
if((nums[i]%10) == 0){
current = nums[i];
}
else{
if(current != 1) nums[i] = current;
}
}
return nums;
}
```

You can come up with this sort of trick if you focus your thinking on algorithms and optimizations. You will never come up with them if you keep asking for basic help.

You are currently working on a problem that can use this exact trick. Good luck.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

Do nothing until you find a multiple of 10. You need a flag.

Once you find one you will use to replace later elements. Remember it.

The rest of the array elements are either replaced or used to update replacer.