티스토리 뷰
프로그램 명: se(open)
제한시간: 1 초
1부터 순서대로 입력된 긴 숫자가 있다.
123456789101112131415161718192021...
맨 왼쪽의 1을 첫 번째 자리로 시작하여, n 번째 자리에 무슨 숫자가 있는지 출력하시오.
위의 수열에서 예를 들면, 1을 첫 번째 자리로 하였을 때, n=3이면 3이고, n=25일 경우 7임을 알 수 있다.
입력
정수 n 이 입력된다. 1 <= n < 1,000,000
출력
n 번째 수를 출력한다.
입출력 예
입력 3 출력 3 입력 25 출력 7
12345678910111213141516171819202122232425262728293031323334353637383940414243 #include <iostream>#include <math.h>using namespace std;int getSize(int num) // 번호의 길이를 구함{int size=0;while(num>0){num/=10;size++;}return size;}int getNumAt(int num, int index)// 번호의 index번째 수를 구함{if(index==0) return num % 10;// 0은 마지막 자리로 예외처리int size = getSize(num);int res = num / pow(10.0, size-index);return res % 10;}int main(){int n,sum=0,i=0;cin >> n;while(sum < n){sum += getSize(++i);}if(sum!=n) sum -= getSize(i);printf("%d\n",getNumAt(i,(n - sum)));}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 객체지향
- 클래스
- 올림픽
- player
- Linux
- ubuntu
- markdown
- Polymorphism
- readme.md
- 크롤링
- 파이선
- 동계
- 다형성
- Class
- ContentResolver
- 리눅스
- Android
- Object Oriented Programming
- Multimedia
- 추상화
- 마크다운
- 평창
- 입장권
- media
- OOP
- 캡슐화
- abstraction
- Encapsulation
- 우분투
- Video
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함