# 잘못된 파라미터 문제에는 캐스트를 사용하라구 되어 있네요. 제가 작성한 답 이외에는 잘 모르겠네요. 코드를 어떻게 넣어야 문제 의도에 맞을까요? #### 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 ```
# 캐스팅을 사용하여 아래와 같이 해결할 수 있습니다. ``` 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; } } ```
문제의 의도에 맞게 형변환을 사용해야 합니다. --- 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 타입으로 형변환 해줘야 합니다.
감사합니다