What's the logic behind it how to we skip odd part ? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 1

What's the logic behind it how to we skip odd part ?

Find the sum of all the numbers in the array excluding the odd numbers that occur after an even number Example: 1: Input. [4,2,3, 6] Output: 12 Explanation: Since 3 (odd number) occurs after an even number 2 we are skipping it. Thus 4+2+6=12. 2: Input [3,6,4,8,5,5] Output: 26 Explanation: 5 is skipped since it occurs after an even number.

29th Jul 2022, 1:27 PM
Jeya Prakash J
Jeya Prakash J - avatar
11 Answers
+ 5
arr=[3,6,4,8,5,5] sum = 0 for i in range(len(arr)): # to skip if arr[i]%2==1 and arr[i-1]%2==0: continue # else add to sum else: sum += arr[i] print(sum) #range(len(arr)) returns indexes values 0 to arr.length-1 # continue skips current iteration so that element won't be added to sum. by else part, it adds value to sum.. You loop gives all values . You can find previous value by that approach.. Also add condition i-1>0 so it won't get accessing to arr[-1] which raise error.. Hope it helps..
29th Jul 2022, 3:06 PM
Jayakrishna 🇮🇳
+ 4
Mustafa A , have you compared the result of your code with the mentioned result from Jeya Prakash J ? what your code is doing: it just sum the odd numbers. but this is not what is requested. read the task description carefully.
29th Jul 2022, 3:33 PM
Lothar
Lothar - avatar
+ 4
Jeya Prakash J , the condition should be: if arr[i - 1] % 2 == 0 and arr[i] % 2 !=0:
29th Jul 2022, 3:48 PM
Lothar
Lothar - avatar
0
nums[i-1] is the value in previous index and nums[i] is the current value.. nums[i] % 2 returns 0 for even number, 1 for odd number..... hope this helps to solve it.. ..
29th Jul 2022, 1:46 PM
Jayakrishna 🇮🇳
0
Lothar Yeah you are right. Wasn't trying to solve it for him. Just to show the concept.
29th Jul 2022, 3:49 PM
Mustafa A
Mustafa A - avatar
0
arr=[3,6,4,8,5,5] sum = 0 for i in range(len(arr)): # to skip if arr[i]%2==1: continue # else add to sum else: sum += arr[i] print(sum)
31st Jul 2022, 4:17 AM
Om Yele
Om Yele - avatar
0
arr=[3,6,4,8,5,5] sum = 0 for i in range(len(arr)): # to skip if arr[i]%2==1: continue # else add to sum else: sum += arr[i] print(sum) Here is your solution
31st Jul 2022, 4:17 AM
Om Yele
Om Yele - avatar
0
arr=[3,6,4,8,5,5] sum = 0 for i in range(len(arr)): # to skip if arr[i]%2==1: continue # else add to sum else: sum += arr[i] print(sum)
31st Jul 2022, 4:17 AM
Om Yele
Om Yele - avatar
- 1
sum([num if num % 2 else 0 for num in nums])
29th Jul 2022, 1:42 PM
Mustafa A
Mustafa A - avatar
- 1
If the number is odd then the modulo operation will leave a remainder. Any number that isn't 0 is considered logically true. Thus the simplified if statement. The number if odd or 0. Then sum it up.
29th Jul 2022, 1:47 PM
Mustafa A
Mustafa A - avatar
- 1
Jayakrishna🇮🇳 Mustafa A Can you improve this code I still don't get It should only skip the odd number that comes right after the even number and count(sum up with even) the odd the number https://code.sololearn.com/ckn7e62xjNs2/?ref=app
29th Jul 2022, 2:42 PM
Jeya Prakash J
Jeya Prakash J - avatar