어차피 2의 ~승은 정수 아닌가요?? 그런데 캐스팅안하면 오류가 나서 궁금하네요!
감사합니다!
아 그리고 피드백 창은 따로 있지만 페북 프로필이 공개되는게 부담스러워서 여기에 남깁니다!
매 강의마다 마지막 체크 문제 풀 때 다시풀기 버튼이 없고 어떤 걸 틀렸는지 알 수 없어서 다시풀려면 [f5] 해야하는게 조금 아쉬웠습니다!
그리고 실습 문제 풀 때 바로 다음 문제로 가는 화살표 버튼 있으면 더욱 더 편할 것 같습니다.
잘 배우고 있습니다~ 감사합니다^^.
# 박테리아
#### CODE <a class='btn btn-default' href='/codes/17288'>Link</a>
```
public class Bacteria {
public static void main(String[] args) {
// 배열 생성
int[] bacteriaCountLogs = new int[10];
// 개체 수 기록
writeLog(bacteriaCountLogs);
// 결과 출력
printLog(bacteriaCountLogs);
}
// 박테리아의 개체 수를 기록
public static void writeLog(int[] logs) {
/* 해당 메소드를 완성하세요. */
for (int i = 0; i < logs.length; i++){
logs[i] = (int) Math.pow(2, i);
}
}
// 배열을 입력받아, 해당 요소를 모두 출력
public static void printLog(int[] arr) {
System.out.printf("[");
for (int i = 0; i < arr.length; i++) {
System.out.printf("%d", arr[i]);
if (i != arr.length - 1) {
System.out.printf(", ");
}
}
System.out.printf("]");
}
}
```
#### INPUT
```
```
#### OUPUT
```
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
```
sehongpark님의 답변
# Math.pow() 메소드
Math.pow() 메소드의 반환 타입은 double 입니다. 따라서, int 형 변수에 값 대입시 캐스팅이 필요합니다. 왜냐하면, 타입 불일치 문제가 발생하기 때문입니다.
```
int result = (int) Math.pow(2, 2);
// => int result = (int) 4.0;
// => int result = 4;
```
## 타입 불일치
타입 불일치란 대입 값이 변수의 타입과 달라 생기는 문제입니다. 보다 자세한 내용은 아래 링크를 통해 확인해 보세요.
- 타입과 형 변환 - https://cloudstudying.kr/lectures/70
## PS.
피드백 감사합니다! 고마워요~~
1rlagkfka님의 답변
그렇군요 감사합니다!