NYOJ 269 VF

来源:互联网 发布:网站seo工作内容 编辑:程序博客网 时间:2024/06/04 19:19

链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=269

 

求1~10^9间各位相加和为s的数的个数..

 

dp[i][j]:::前i位和为j的数字的个数

 #include <iostream>using namespace std;int dp[11][90];void vffun(void){    int i,j,k;    for(i=1;i<10;i++)        dp[1][i]=1;    for(i=1;i<10;i++)        for(j=1;j<=9*i;j++)            for(k=0;k<10&&k<=j;k++)                dp[i][j]=dp[i][j]+dp[i-1][j-k];}int main(){    int s;    int ans;    vffun();    while(cin>>s)    {        ans=0;        if(s==1)            cout<<10<<endl;        else        {            for(int i=1;i<10;i++)                ans+=dp[i][s];            cout<<ans<<endl;        }    }    return 0;}        


 

0 0