i = 1부터 N까지 반복할때마다 i의 자릿수를 sum변수에 더해주면 원하는 결과를 얻을 수 있다.
#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
int num;
cin >> num;
int temp = num, digit = 1;
while ((temp / 10) != 0)
temp /= 10, digit++;
int i=1, sum = 0, digitNum = 1,digitMax = 10;
while (digit--)
{
for ( ; i < digitMax; i++)
{
if (i > num)
{
cout << sum << endl;
return 0;
}
else
{
sum += digitNum;
}
}
digitNum++;
digitMax *= 10;
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
알고리즘 200일 프로젝트 - 15day
내일도 열심히!
'알고리즘 > BOJ' 카테고리의 다른 글
백준 15684번: 사다리 조작 (c++) (0) | 2020.04.22 |
---|---|
백준 10448: 유레카 이론 (c++) (0) | 2020.04.21 |
백준 12100번: 2048(Easy) (C++) (0) | 2020.04.19 |
백준 15683번: 감시 (C++) (0) | 2020.04.18 |
백준 1065번: 한수 (0) | 2020.04.17 |