SDUTOJ 小P的故事——神奇的换零钱

来源:互联网 发布:兄贵pump♂it 编辑:程序博客网 时间:2024/04/28 13:14
<pre name="code" class="cpp">#include<stdio.h>#include<string.h>int dp[40000];int main(){int n,i,j,a[3]={1,2,3};dp[0]=1;for(i=0;i<=2;i++)for(j=a[i];j<=32769;j++)dp[j]=dp[j]+dp[j-a[i]];while(scanf("%d",&n)!=EOF){printf("%d\n",dp[n]);}return 0;}//上述是正确代码..
下面是的代码是自己第一次编写的..不过超时..哪位大牛帮我指点下错误啊..没弄懂..#include<iostream>#include<memory.h>using namespace std;int dp[100000];int main(){int n,a[3]={1,2,3},i,j;while(cin>>n){memset(dp,0,sizeof(dp));dp[0]=1;for(i=0;i<=2;i++)for(j=a[i];j<=n;j++)dp[j]=dp[j]+dp[j-a[i]];cout<<dp[n]<<endl;}return 0;} 


                                             
0 0