[복습] 261022 - C# 4챕터

강현구
∙∙조회 3

복습-복습

 

Q3. 작은 이동량 보존

문제

시작 위치와 이동량을 한 줄씩 입력받음. 같은 두 입력을 float와 double로 각각 해석하고 위치를 한 번 이동시킴. 각 타입에서 이동 전후 위치의 차이를 구해 실제 반영된 이동량을 출력함. 시작 위치는 0100000000, 이동량은 010의 정수이며 입력 원문을 보관해 두 타입에서 사용함.

입력 예시

plain textCopy

plain text
100000000
1

ini
using System;

string first = Console.ReadLine();
string movement = Console.ReadLine();
//

float firstFloat = float.Parse(first);
float moveFloat = float.Parse(movement);

double firstDouble = double.Parse(first);
double moveDouble = double.Parse(movement);

//

Console.WriteLine($"float 반영량:{(firstFloat + moveFloat) - firstFloat}");
Console.WriteLine($"double 반영량:{(firstDouble + moveDouble) - firstDouble}");

소요시간: 2분
AI 사용여부: X

 


복습

Q4. 할인 후 적립금

문제

상품 단가, 구매 수량, 할인율을 한 줄씩 입력받음. 주문 전체에 할인율을 적용하고, 할인 후 결제액의 2%를 적립함. 금액은 decimal로 계산하고 결제액·적립액은 소수점 둘째 자리까지 반올림함. 정확한 중간값은 0에서 먼 쪽으로 처리하며 적립 기준은 반올림한 결제액임. 단가는 0.011000, 수량은 1100의 정수, 할인율은 0~1이며 소수점은 점으로 입력함.

입력 예시

plain text
12.50
3
0.10

예상 결과

makefile
결제액: 33.75
적립액: 0.68

ini
using System;

decimal price = decimal.Parse(Console.ReadLine());
int count = int.Parse(Console.ReadLine());
decimal discount = decimal.Parse(Console.ReadLine());

//
decimal pay = ((price * count) - ((price * count) * discount));
decimal collect = pay * 0.02m;
//

Console.WriteLine($"결제액: {(pay):F2}");
Console.WriteLine($"적립액: {(collect):F2}");

 

소요시간: 6분
AI사용: X

여기서 할인율과 적립률은 계산 방식은 같고, 어떤 금액을 기준으로 계산하는지만 다름

  • 할인 금액: 할인 전 전체 가격 × 할인율
  • 적립 금액: 할인 후 결제액 × 적립률

 

퍼센트를 소수로 바꾼 다음, 기준 금액에 곱한다.

할인은 그 금액을 빼고, 적립은 그 금액을 구하면 끝