ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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



    반응형
Designed by Tistory.