Week2

Week 2 - 21.08.04

쓰고쓰디쓴 2021. 8. 4. 23:19

C++ 공부 6일 차

 

오늘은 2일 차에서 공부했던 '기본 프로그래밍'에서 뒤에 있는 프로그래밍 실습의 문제들을 모두 풀어보았습니다.

그 중에서도 난이도가 제일 높았던 문제들을 올리겠습니다.

 

2.6 (정수의 자리 수 더하기) 0에서 1000 사이의 정수를 입력받아 정수에 있는 각 자리수를 더하는 프로그램을 작성하여라. 예를 들어, 입력한 정수가 932라면 각 자리수의 합은 14가 된다.

2.6의 풀이 및 실행 결과

각 자리수를 더하는 프로그램이기 때문에,

100의 자리수는 100으로 나누어서 구하고, (932 -> 9)

10의 자리수는 % 100을 하여 백의 자리수를 버린 후, 10으로 나누어서 구하고, (932 -> 32 -> 3)

1의 자리수는 % 10을 한 나머지로 구했습니다. (932 -> 2)

그 뒤, 각 자리수를 모두 더한 res를 출력했습니다.

 

2.13 (금융 문제: 복리 계산) 매달 $100를 저축하고 연 이자율이 5%라면, 월 이자율은 0.05 / 12 = 0.00417이 된다. 첫 달의 잔액은 원금에 이자를 더해서 다음과 같이 계산할 수 있다.

100 * (1 + 0.00417) = 100.417

두 번째 달에는 다음 금액이 된다.

(100 + 100.417) * (1 + 0.00417) = 201.252

세 번째 달에는 다음 금액이 된다.

(100 + 201.252) * (1 + 0.00417) = 302.507

매달 저축액을 입력받아 6개월 후

의 적립 금액을 출력하는 프로그램을 작성하여라.

2.13의 풀이 및 실행 결과

연 이자율은 5%로 고정되어있기 때문에 월 이자율은 0.00417 + 1를한 1.00417로 사용했습니다.

그 뒤, 9번째 줄의 value를 선언하여 첫 달의 잔액을 계산하고, 반복문을 사용하여 다음 달의 잔액을 계산하고,

해당 달의 잔액을 value에 다시 저장합니다. 이미 첫 달의 잔액을 계산하였기 때문에, 남은 다섯 달만 반복하여 잔액을 계산합니다.

반복문이 끝난 변수 res의 값을 출력합니다.