1748 수 이어 쓰기 1
2019. 9. 2. 17:40ㆍ알고리즘/백준
일의 자리수는 총 9개이면서 길이가 1로 9의 길이를 차지하고, 두 자릿수는 총 90개이면서 길이가 2로 180의 길이를 갖는다. 이러한 규칙으로 해당 자릿수에 대해서만 차이에 대한 연산을 하고 나머지 밑의 자릿수는 정해진 90, 180을 더해주면 된다
문제: https://www.acmicpc.net/problem/1748
깃허브주소: https://github.com/surinoel/boj/blob/master/1748.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <cmath> | |
#include <string> | |
#include <iostream> | |
using namespace std; | |
int main(void) { | |
ios_base::sync_with_stdio(false); | |
cin.tie(nullptr); | |
int n; | |
cin >> n; | |
string s = to_string(n); | |
int len = s.size(); | |
int ans = 0; | |
ans = len * (n - (int)pow(10, len - 1) + 1); | |
for (int i = len - 1; i >= 1; i--) { | |
ans += 9 * (int)pow(10, i - 1) * i; | |
} | |
cout << ans << '\n'; | |
return 0; | |
} |
'알고리즘 > 백준' 카테고리의 다른 글
2529 부등호 (0) | 2019.09.03 |
---|---|
16235 나무 재테크 (0) | 2019.09.02 |
6064 카잉 달력 (0) | 2019.09.02 |
16234 인구 이동 (0) | 2019.09.02 |
16926 배열 돌리기 (0) | 2019.09.01 |