标签:
input | output |
---|---|
1 |
10 |
//0.031 206 KB #include<stdio.h> #include<string.h> using namespace std; int dp[10][107]; int main() { int n,j; memset(dp,0,sizeof(dp)); for(int i=1;i<=9;i++)dp[1][i]++;//从最高位往下找,最高位只能使1~9 for(int i=2;i<=9;i++) for(int j=1;j<=81;j++) { dp[i][j]=dp[i-1][j];//第一部分 for(int k=1;k<=9;k++)//第二部分 if(j-k>0)dp[i][j]+=dp[i-1][j-k]; } while(scanf("%d",&n)!=EOF) { int sum=0; if(n==1)printf("10\n"); else { for(int i=1;i<=9;i++)//将各个位数符合条件的加起来 sum+=dp[i][n]; printf("%d\n",sum); } } return 0; }
ural 1353. Milliard Vasya's Function
标签:
原文地址:http://blog.csdn.net/crescent__moon/article/details/42678365