# 잘못된 파라미터
문제에는 캐스트를 사용하라구 되어 있네요. 제가 작성한 답 이외에는 잘 모르겠네요. 코드를 어떻게 넣어야 문제 의도에 맞을까요?
#### CODE <a class='btn btn-default' href='/codes/30433'>Link</a>
```
public class WhatIsWrong {
public static void main(String[] args){
int n = 3;
int c = 2;
int a = square(n);
int b = cube(c);
System.out.printf("a = %d, b = %d\n", a, b);
}
public static int square(int n) {
return n * n;
}
public static int cube(int c) {
return c * c * c;
}
}
```
#### INPUT
```
```
#### OUPUT
```
a = 9, b = 8
```
sehongpark님의 답변
# 캐스팅을 사용하여
아래와 같이 해결할 수 있습니다.
```
public class WhatIsWrong {
public static void main(String[] args) {
int a = square((int) 3.0); // 입력 값을 정수로 캐스팅 (3.0 -> 3)
int b = (int) cube(2); // 반환 값을 정수로 캐스팅 (8.0 -> 8)
System.out.printf("a = %d, b = %d\n", a, b);
}
public static int square(int n) {
return n * n;
}
public static double cube(double n) {
return n * n * n;
}
}
```
goodlife1359님의 답변
문제의 의도에 맞게 형변환을 사용해야 합니다.
---
1. square((int) 3.0);
square메서드의 파라미터가 int로 선언되어 있고 메서드의 리턴타입이 int 타입이기 때문에
메서드를 호출할때 double 타입인 값을 int 타입으로 형변환 해서 넘겨야 합
니다.
public static int square(int n) {
return n * n;
}
2. int b = (int) cube(2);
public static double cube(double n) {
return n * n * n;
}
cube메서드의 실행결과 리턴타입이 double타입이지만 결과값을 저장하려는 b변수의 타입이 int 이기 때문에 메서드 실행이 완료된후
b변수에 값을 저장하기 전에 int 타입으로 형변환 해줘야 합니다.
naa159님의 답변
감사합니다