HDU Square Coins
简单题
给你17种价值的硬币 拼出客户输入的数字输出有几种可能 17 种分别是1 到17 的平方
#include<iostream>
#include<cstring>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define MAX 400
int c1[MAX];
int c2[MAX];
int main(){
int coins[18];
int n=1,i,k,l,j;
//freopen("t.txt","r",stdin);
for(i=0;i<=300;i++)
c1[i] = 1;
for(i=1;i<=17;i++) {
coins[i] = i*i;
}
for(l=2;l<=17;l++) {
for(i=0;i<=300;i++) {
for(k=0;i+k<=300;k+=coins[l]) {
c2[i+k] += c1[i];
}
}
for(j=0;j<=300;j++) {
c1[j] = c2[j];
c2[j] = 0;
}
}
while(scanf("%d",&n)!=EOF) {
if(n==0)
break;
printf("%d\n",c1[n]);
}
return 0;
}
浙公网安备 33010602011771号