[복습]260924

강현구
∙∙조회 8
  • 목적: 이번주에 배운 내용 복습
  • 범위: 4~5
  • 시간 할애: 2시간

04 숫자 타입과 float 연습문제

Q1. 밝기 값의 여유 범위

문제

현재 밝기를 한 줄 입력받아, byte가 표현할 수 있는 범위에서 낮출 수 있는 양과 높일 수 있는 양을 출력함. 입력은 0~255의 정수임. 범위의 끝값은 숫자를 직접 적지 않고 byte.MinValue·byte.MaxValue로 구함.

입력 예시

plain text
180

예상 결과

plain text
낮출 수 있는 양: 180
높일 수 있는 양: 75

csharp
using System;

byte a = byte.Parse(Console.ReadLine());

Console.WriteLine($"낮출 수 있는 양: {a - byte.MinValue}");
Console.WriteLine($"높일 수 있는 양: {byte.MaxValue-a}");

 


Q2. 영상 원본 저장량

문제

영상 한 프레임의 바이트 수와 프레임 개수를 한 줄씩 입력받아 전체 저장량을 출력함. 각 입력은 1~1000000000의 정수이며, 전체 바이트 수를 정확한 정수로 계산함.

입력 예시

plain text
6000000
500

예상 결과

plain text
필요한 저장량: 30  0바이트

charp
using System;

int bytes = int.Parse(Console.ReadLine());
int frame = int.Parse(Console.ReadLine());

Console.WriteLine($"필요한 저장량: {bytes*frame}");

?

각 입력은 1~1000000000의 정수이며

아하

sharp
using System;

int bytes = int.Parse(Console.ReadLine());
int frame = int.Parse(Console.ReadLine());

Console.WriteLine($"필요한 저장량: {(uint)(bytes*frame)}");


Q3. 작은 이동량 보존 - 실패

문제

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

==입력 예시==

plain text
100000000
1

예상 결과

arduino
float 반영량: 0
double 반영량: 1

csharp
using System;

float start = float.Parse(Console.ReadLine());
double move = double.Parse(Console.ReadLine());

float endpos = (float)(start + move);
double movepos = (double)(start + move);

Console.WriteLine($"float 반영량: {endpos - start}");
Console.WriteLine($"double 반영량: {movepos - start}");

 

실패 이유: 이동량 구하는게 헷갈려서 AI질문 - 그냥 기본 수학처럼 그냥 더하면 되는거였음


Q4. 할인 후 적립금

문제

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

입력 예시

plain text
12.50
3
0.10

예상 결과

makefile
결제액: 33.75
적립액: 0.68

 

자릿값 공부에 시간들 들여서 많이 못한게 아쉽다