[복습] 261026 - C# 4챕터
Q4. 할인 후 적립금
문제
상품 단가, 구매 수량, 할인율을 한 줄씩 입력받음. 주문 전체에 할인율을 적용하고, 할인 후 결제액의 2%를 적립함. 금액은 decimal로 계산하고 결제액·적립액은 소수점 둘째 자리까지 반올림함. 정확한 중간값은 0에서 먼 쪽으로 처리하며 적립 기준은 반올림한 결제액임. 단가는 0.011000, 수량은 1100의 정수, 할인율은 0~1이며 소수점은 점으로 입력함.
입력 예시
plain textCopy
12.50
3
0.10
예상 결과
결제액: 33.75
적립액: 0.68

using System;
decimal price = decimal.Parse(Console.ReadLine());
int count = int.Parse(Console.ReadLine());
decimal disCount = decimal.Parse(Console.ReadLine());
//
decimal payment = (price * count) - ((price * count) * disCount);
decimal collect = payment * 0.02m;
Console.WriteLine($"결제액: {payment:F2}");
Console.WriteLine($"적립액: {collect:F2}");
시도 횟수: 1
AI 사용: X
소요시간: 3분 30초
종합평가: A
Q5. 주차 시간 정산
문제
주차한 분 수를 한 줄 입력받아 완전히 지난 시간 수, 과금 시간 수, 요금을 출력함. 시작한 한 시간마다 1500원을 부과하고 0분은 무료임. 입력은 0~1440v의 유한한 소수이며 소수점은 점으로 씀. 시간 수는 시간 단위의 정수 값으로 계산함.
입력 예시
plain textCopy
61
예상 결과
완전히 지난 시간: 1
과금 시간: 2
요금: 3000원
using System;
int minutes = int.Parse(Console.ReadLine());
int spendTime = minutes / 60;
int payTime = spendTime == 0 ? 0 : (minutes + 59)/60;
//
Console.WriteLine($"완전히 지난 시간: {spendTime}");
Console.WriteLine($"과금 시간: {payTime}");
Console.WriteLine($"요금: {payTime*1500}");

시도 횟수: 1
AI 사용: X
소요시간: 3분 30초
종합평가: A
Q6. 반올림 시점 비교
문제
첫째·둘째 작업의 보상액을 한 줄씩 입력받아 두 정산 방식을 비교함. A는 각 보상액을 정수로 반올림한 후 합산하고, B는 원래 보상액을 합산한 후 정수로 반올림함. 두 방식 모두 Math.Round의 기본 중간값 규칙을 사용하며 B에서 A를 뺀 차이를 출력함. 입력은 -1000~1000의 유한한 소수이고 decimal로 계산하며 소수점은 점으로 씀.
입력 예시
2.5
2.5
예상 결과
건별 정산: 4
합산 정산: 5
차이: 1

using System;
decimal first = decimal.Parse(Console.ReadLine());
decimal second = decimal.Parse(Console.ReadLine());
//
//A는 각 보상액을 정수로 반올림한 후 합산하고
decimal firstA = Math.Round(first) + Math.Round(second);
//B는 원래 보상액을 합산한 후 정수로 반올림함
decimal firstB = Math.Round(first + second);
Console.WriteLine($"건별 정산: {firstA}");
Console.WriteLine($"합산 정산: {firstB}");
Console.WriteLine($"차이: {firstB - firstA}");
시도 횟수: 1
AI 사용: X (인터넷에 Math.Round 검색함)
소요시간: 6분 04초
종합평가: F
어제 풀었음에도 다시푸니 몰라서 새로운 문제를 풀지 못함 반드시 반성할것



