삼성SDS_멀티캠퍼스/Java

6일 차 JAVA 전기료 사용량 계산하기

박성우기 2015. 9. 14. 16:14
반응형

전기 사용량이 


100이하면 기본료 400원 다음 100kWh까지 *59.1

200이하면 기본료 890원 다음 100kWh까지 *122.6

300이하면 기본료 1560원 다음 100kWh까지 *183.0

400이하면 기본료 3750원 다음 100kWh까지 *273.2

500이하면 기본료 7110원 다음 100kWh까지 *406.7

500초과하면 기본료 12600원 500초과분 * 690.8



예를들어


70사용시 : 기본료 400 + 70*59.1

120사용시 : 기본료 890 + 100*59.1 + 20*122.6

220사용시 : 기본료 1560 + 100*59.1 + 100*122.6+20*183.0



import java.util.Scanner;


public class Test7 {


public static void main(String[] args) {


double result = 0;

double input_Num;

Scanner scan = new Scanner(System.in);


System.out.println("전기 사용량을 입력하세요");

input_Num = scan.nextDouble();


if (input_Num <= 0) {

System.out.println("쓴적이 없음");

} else if (input_Num <= 100) {

result = 400 + (input_Num * 59.1);


} else if (input_Num <= 200) {

result = 890 + 5910 + ((input_Num - 100) * 122.6);


} else if (input_Num <= 300) {

result = 1560 + 5910 + 12260 + ((input_Num - 200) * 183.0);


} else if (input_Num <= 400) {

result = 3750 + 5910 + 12260 + 18300 + ((input_Num - 300) * 273.2);


} else if (input_Num <= 500) {

result = 7110 + 5910 + 12660 + 18300 + 27320 + ((input_Num - 400) * 406.7);


} else if (input_Num > 500)

result = 12600 + 5910 + 12660 + 18300 + 27320 + 40670 + ((input_Num - 500) * 690.8);


System.out.println(result + "원");

}

}




이렇게 노가다 해도 되고



=====================================================



import java.util.Scanner;


public class Test8 {


public static void main(String[] args) {


final int[] BASIC_FEE = { 400, 890, 1560, 3750, 7110, 12600 };

final double[] USE_FEE = { 59.1, 122.6, 183.0, 273.2, 406.7, 690.8 };


double result = 0;

double input_Num;

Scanner scan = new Scanner(System.in);


System.out.println("전기 사용량을 입력하세요");

input_Num = scan.nextDouble();


if (input_Num <= 0) {

System.out.println("쓴적이 없음");


} else if (input_Num <= 100) {

result = BASIC_FEE[0] + (input_Num * USE_FEE[0]);


} else if (input_Num <= 200) {

result = BASIC_FEE[1] + 100 * USE_FEE[0] + ((input_Num - 100) * USE_FEE[1]);


} else if (input_Num <= 300) {

result = BASIC_FEE[2] + 100 * USE_FEE[0] + 200 * USE_FEE[1] + ((input_Num - 200) * USE_FEE[2]);


} else if (input_Num <= 400) {

result = BASIC_FEE[3] + 100 * USE_FEE[0] + 200 * USE_FEE[1] + 300 * USE_FEE[2] + ((input_Num - 300) * USE_FEE[3]);


} else if (input_Num <= 500) {

result = BASIC_FEE[4] + 100 * USE_FEE[0] + 200 * USE_FEE[1] + 300 * USE_FEE[2] + 400 * USE_FEE[3]

+ ((input_Num - 400) * USE_FEE[4]);


} else if (input_Num > 500)

result = BASIC_FEE[5] + 100 * USE_FEE[0] + 200 * USE_FEE[1] + 300 * USE_FEE[2] + 400 * USE_FEE[3]

+ 500 * USE_FEE[4] + ((input_Num - 500) * USE_FEE[5]);


System.out.println(result + "원");

}

}




이렇게 하면 기본료랑 사용료가 바뀌어도 위에 배열값만 바꾸면

값이 계속 변하지만 아직도 길다.



=============================================================



import java.util.Scanner;


public class Test10 {


public static void main(String[] args) {


final int[] BASIC_FEE = { 400, 890, 1560, 3750, 7110, 12600 };

final double[] USE_FEE = { 59.1, 122.6, 183.0, 273.2, 406.7, 690.8 };


double result = 0;

double input_Num;

double total = 0;

int i = 0;

Scanner scan = new Scanner(System.in);


System.out.println("전기 사용량을 입력하세요");

input_Num = scan.nextDouble();


while (!(input_Num < 100 || i == 5)) {


result += 100 * USE_FEE[i];

input_Num -= 100;

i++;

}

result += BASIC_FEE[i] + USE_FEE[i] * input_Num;

System.out.println(result + "원");


}

}



짧다





출처: 삼성SDS멀티캠퍼스 

강사: 홍승길

Email : iccack70@gmail.com



반응형