Q. 수를 입력받아서 해당 숫자가 홀수인지 여부를 리턴하세요.
입력 : int type의 정수
출력 : boolean type 을 리턴
제한 조건 :
- while문을 사용할 것.(for문 사용 금지)
- 나눗셈, 나머지(%) 연산자는 사용 금지
- 숫자 0 은 짝수로 간주.
내가 작성한 코드
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class Solution {
public boolean isOdd(int num) {
if(num <0) {
num = num*(-1);
}
while(num>0) {
num = num -2;
if(num == 1) {
return true;
}
}
return false;
}
}
|
cs |
나의 로직 및 생각
- 평소에, 입력 받은 숫자가 짝수 인지 홀수 인지 구별하는 방법은 % 연산자를 이용하는 방법만 알고 있었어서, % 연산자를 사용하지 않고 홀수를 판별할 코드를 작성할 만한 아이디어가 잘 떠오르지 않아서 애를 먹었다....ㅠ
- 짝수라면, 음수가 되기 직전 까지 2 를 빼준다면 결국 0이 될 것이고, 홀수라면 음수가 되기 직전 까지 2 를 빼준다면 결국 1이 될 것이라는 점을 코드에 적용해 보았다.
- 입력값이 정수이기 때문에 음수값을 받을 경우 해당 숫자를 양수값로 바꿔줘야 한다.
- 조건문을 사용해서 간단하게 입력값을 음수 → 양수 로 바꿔줄 수 있다.
22년 12월 23일 금요일 학습
'Code 문제 풀이(Java)' 카테고리의 다른 글
| 배열과 요소를 입력받아 그 요소를 배열의 맨 앞에 추가하기(System.arraycopy) (0) | 2022.12.26 |
|---|---|
| 숫자 2 부터 특정 자연수 까지의 모든 소수(prime number)들을 모으기 (0) | 2022.12.23 |
| 소수(prime number)여부 판별하기 (0) | 2022.12.23 |