반응형
12. 숫자의 총 개수(large)
자연수 N이 입력되면 1부터 N까지의 자연수를 종이에 적을 때 각 숫자는 몇 개 쓰였을까요?
예를 들어 1부터 15까지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로
총 21개가 쓰였음을 알 수 있습니다.
자연수 N이 입력되면 1부터 N까지 각 숫자는 몇 개가 사용되었는지를 구하는 프로그램을 작
성하세요.
▣ 입력설명
첫 번째 줄에는 자연수 N(3<=N<=100,000,000)이 주어진다.
▣ 출력설명
첫 번째 줄에 숫자의 총개수를 출력한다.
▣ 입력예제 1
15
▣ 출력예제 1
21
// 나누기 10을 통해 자릿수를 추출하기엔 입력값이 너무크다.
// 1~9까진 한자리, 10~99까진 두자리, 100~999 까진 세자리, 이런식으로 증가한다는걸 이용하여 풀수있다.
#include <iostream>
using namespace std;
int main()
{
int n, a = 1, b = 9, res =0 , sum = 0;
cin >>n;
while (sum+b<n)
{
res = res+(a*b);
sum = sum+b;
a++;
b = b*10;
}
res += a*(n-sum);
cout << res;
}
반응형
'Study' 카테고리의 다른 글
소수의 개수 (0) | 2019.08.22 |
---|---|
가장 많이 사용된 자릿수 (0) | 2019.08.22 |
모두의 약수(제한시간 1초) (0) | 2019.08.13 |
영어단어 복구 (0) | 2019.08.12 |
자릿수의 합 (0) | 2019.08.12 |