-
6일 차 JAVA 전기료 사용량 계산하기삼성SDS_멀티캠퍼스/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
반응형'삼성SDS_멀티캠퍼스 > Java' 카테고리의 다른 글
7일 차 JAVA 매개변수 (0) 2015.09.15 6일 차 JAVA 반복문(for)을 사용해서 소수 구하기 (0) 2015.09.14 6일 차 JAVA 배열을 이용하여 로또번호 추출기 제작 (0) 2015.09.14 6일 차 JAVA 2차원의배열의 더하기2 (0) 2015.09.14 6일 차 JAVA 2차원 배열의 더하기 (0) 2015.09.14