// 요구사항 // 두개의 정수를 입력받아 그 합과 계산식 출력 // sum(int, int) // sum(int, long) // sum(long, int)
// [실행] sum(10,5); // [결과] 10 + 5 = 15 // [조건] 숫자 천단위 표시할 것
import java.io.*;
class Ex32_Test_sum
{
public static void main(String[] args) throws IOException
{
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("두 개의 정수를 더하여 결과를 출력합니다.");
System.out.print("첫 번째 정수 입력 : ");
String num = reader.readLine();
long num1 = Long.parseLong(num); //첫번째 정수
System.out.print("두 번째 정수 입력 : ");
long num2 = Long.parseLong(reader.readLine()); //두번째 정수
//입력된 수의 크기에 따른 데이터형 저장 및 sum함수 호출
if(num1<=Integer.MAX_VALUE && num2<=Integer.MAX_VALUE) {
int intNum1 = (int)num1;
int intNum2 = (int)num2;
sum(intNum1,intNum2);
}else if(num1>Integer.MAX_VALUE && num2<=Integer.MAX_VALUE) {
int intNum2 = (int)num2;
sum(num1,intNum2);
}else if(num1<=Integer.MAX_VALUE && num2>Integer.MAX_VALUE) {
int intNum1 = (int)num1;
sum(intNum1,num2);
}
}//end main
// 계산식(오버로딩)
public static void sum(int num1, int num2) {
System.out.println("int형과 int형을 더합니다.");
System.out.printf("%,d + %,d = %,d%n", num1,num2,num1+num2);
}
public static void sum(int num1, long num2) {
System.out.println("int형과 long형 더합니다.");
System.out.printf("%,d + %,d = %,d%n", num1,num2,num1+num2);
}
public static void sum(long num1, int num2) {
System.out.println("long형과 int형을 더합니다.");
System.out.printf("%,d + %,d = %,d%n", num1,num2,num1+num2);
}
}