하나하나 홀수를 걸러내는 코드
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int a, b, c, sum = 0;
cin >> a >> b >> c;
if (a % 2 == 1) { // a 홀수
if (b % 2 == 1) { // b 홀수
if (c % 2 == 1) cout << a * b * c << endl; //c 홀수
else cout << a * b << endl; //c짝수
}
else { // b 짝수
if (c % 2 == 1) cout << a * c << endl; //c 홀수
else cout << a << endl; //c짝수
}
}
else { // a 짝수
if (b % 2 == 1) { // b 홀수
if (c % 2 == 1) cout << b * c << endl; //c 홀수
else cout << b << endl; //c짝수
}
else { // b 짝수
if (c % 2 == 1) cout << c << endl; //c 홀수
else cout << a * b * c << endl; //c짝수
}
}
return 0;
}
아래 코드는 백준에서 정답처리는 안되지만 결과가 잘 나오는것같다.
혹시 아래 코드 반례가 있다면 알려주세요.
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int a,b,c,sum=1;
cin >> a >> b >> c;
if(a%2==1) sum*=a; //홀수일때만 sum에 곱하기
if(b%2==1) sum*=b;
if(c%2==1) sum*=c;
if(sum==1) sum=a*b*c; //홀수가 없는경우(모두 짝수인 경우)
cout << sum << endl;
return 0;
}
+코드 추가
flag 변수를 추가해서 제출하니 정답처리가 되었다.
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int a,b,c,flag =0,sum=1;
cin >> a >> b >> c;
if(a%2==1){
sum*=a;
flag = 1;
}
if(b%2==1) {
sum*=b;
flag = 1;
}
if(c%2==1) {
sum*=c;
flag = 1;
}
if(flag==0) sum = a*b*c;
cout << sum <<endl;
return 0;
}
'PROGRAMMING CODE > C++' 카테고리의 다른 글
[BAEKJOON] No.2460 C++ (0) | 2021.10.14 |
---|---|
[BAEKJOON] No.2953 C++ (0) | 2021.10.14 |