Reputation: 21
For input(12134),in some cases it is giving output:"Yes" and in some cases it is giving "No".
package nagarroBootcamp;
import java.util.Scanner;
public class OddEven {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int carnum = 0;
int lastDigit = 0;
int sumOfEven = 0;
int sumOfOdd = 0;
for (int i = 1; i <= N; i++) {
carnum = sc.nextInt();
int temp = carnum;
while (temp > 0) {
lastDigit = temp % 10;
if (lastDigit % 2 == 0) {
sumOfEven += lastDigit;
} else {
sumOfOdd += lastDigit;
}
temp /= 10;
}
if (sumOfEven % 4 == 0 || sumOfOdd % 3 == 0)
System.out.println("Yes");
else
System.out.println("No");
}
}
}
Upvotes: 0
Views: 142
Reputation: 415
The reason is, that you are not resetting these variables for subsequent input, you just initialize them once at the beginning, so only the first result is actually relevant
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for (int i = 1; i <= N; i++) {
int carnum = 0;
int lastDigit = 0;
int sumOfEven = 0;
int sumOfOdd = 0;
carnum = sc.nextInt();
int temp = carnum;
while (temp > 0) {
lastDigit = temp % 10;
if (lastDigit % 2 == 0) {
sumOfEven += lastDigit;
} else {
sumOfOdd += lastDigit;
}
temp /= 10;
}
if (sumOfEven % 4 == 0 || sumOfOdd % 3 == 0) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
Upvotes: 4