## Problem:

Return the sum of the numbers in the array, returning 0 for an empty array. Except the number 13 is very unlucky, so it does not count and numbers that come immediately after a 13 also do not count.

sum13({1, 2, 2, 1}) → 6
sum13({1, 1}) → 2
sum13({1, 2, 2, 1, 13}) → 6

## Solution:

public int sum13(int[] nums) {
int sum = 0;

for (int i = 0; i < nums.length; i++) {
if(nums[i] != 13) {
sum += nums[i];
if(i>0 && nums[i-1] == 13)
sum -= nums[i];
}
}
return sum;
}

1. My solution:

public int sum13(int[] nums) {

int sum = 0;

for (int i = 0; i < nums.length; i++) {
if (nums[i] == 13 || i > 0 && nums[i - 1] == 13) {
continue;
} else {
sum += nums[i];
}
}

return sum;
}

2. Another way:

public int sum13(int[] nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 13) {
i++;
continue;
}
sum += nums[i];
}
return sum;
}

3. Another way:

public int sum13(int[] nums) {

int sum = 0;

for (int i = 0; i < nums.length; i++) {

if (nums.length>0) {

if (nums[i] < 13 || nums[i] > 13) sum += nums[i];
else i++;

}

}

return sum;
}

4. This is my solution.

public int sum13(int[] nums) {
if(nums.length==0) return 0;

int i=0;
int count=0;
while(i<nums.length) {

if(nums[i]!=13 ){
count+=nums[i];

}

else {
if(nums[i]==13 && i+1<nums.length) {
nums[i+1]=0;
}
}

i++;
}

return count;

}

5. int n=0;
for(int i=0;i<nums.length;i++){
if(nums[i]==13){
i++;
continue;
}
n+=nums[i];
}
return n;

6. public int sum13(int[] nums) {
int sum = 0;
for (int i=0; i<nums.length; i++) {
if (nums[i]==13) i++;
else sum+=nums[i];
}
return sum;
}

7. public int sum13(int[] nums) {
int sum=0;
for(int i=0;i=13)
return sum-13;
else
return sum;
}

1. public int sum13(int[] nums) {
int sum=0;

for(int i=0;i<=nums.length-1;i++) {

sum+=nums[i];
if(nums[i]==13) {
sum=sum-nums[i];
i=i+1;
}
}

return sum;
}

8. public int sum13(int[] nums) {
int sum = 0;
if(nums.length == 0){
return 0;
}

for(int i = 0; i < nums.length; i ++){
if (nums[i] < 13 || nums[i] > 13){
sum += nums[i];
} else i++;

}
return sum;

}

9. public int sum13(int[] nums)
{
int value = 0;

if(nums.length < 1)
{
return 0;
}

for(int i = 0; i < nums.length; i++)
{

if(nums[i] == 13) i++;
else value = value + nums[i];
}

return value;
}

10. I am getting out of bound exception when array length is 5 or higher. public int sum13(int[] nums) {
int sum = 0;

for (int i=0;i<nums.length;i++) {
if (nums.length <= 0) {
return(0);
}
if(nums[i]!=13){
sum+=nums[i];
}

else {

sum -= nums[i] - nums[i+1];
}

}return (sum);
}

## Subscribe

We hate spam as much as you do.