티스토리 뷰

Algorithm/BOJ

2688 줄어들지 않아

henry1214 2018. 6. 8. 06:39

https://www.acmicpc.net/problem/2688



d[i][j] = i자리수 이면서 마지막 자리수가 j인 수의 개수


d[1][j] = 1 한자리수일 때는 모두 1이다.

d[i][j] += d[i-1][k] (0<=k<=j) 하나 작은 자리수에서 마지막 자리수가 최대 j까지 올 수 있는 경우를 모두 합한다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdio>
 
long long t,n,i,j,k,s,d[65][10];
 
int main()
{
    for(j=0;j<10;j++) d[1][j]=1;
    for(i=2;i<65;i++for(j=0;j<10;j++for(k=0;k<=j;k++)
        d[i][j]+=d[i-1][k];
    scanf("%lld",&t);
    while(t--)
    {
        scanf("%lld",&n);
        s=0for(j=0;j<10;j++) s+=d[n][j];
        printf("%lld\n",s);
    }
    return 0;
}
cs



'Algorithm > BOJ' 카테고리의 다른 글

9009 피보나치  (0) 2018.07.03
15789 CTP 왕국은 한솔 왕국을 이길 수 있을까?  (0) 2018.06.27
11497 통나무 건너뛰기  (0) 2018.06.07
10219 Meats On The Grill  (0) 2018.06.07
11502 세 개의 소수 문제  (0) 2018.06.06
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday