题目地址:点击打开链接
思路:母函数模板题
AC代码:
#include <iostream> using namespace std; int main() { int i,j,k,n; int c1[310],c2[310]; while(cin>>n) { if(n == 0) break; for(i=0; i<=n; i++) { c1[i] = 1; c2[i] =0; } for(i=2; i<=17; i++)//要是超时可以预处理一下,不过不可能,懒得处理了 { for(j=0; j<=n; j++) { for(k=0; k+j<=n; k += i*i) { c2[k+j] += c1[j]; } } for(j=0; j<=n; j++) { c1[j] = c2[j]; c2[j] = 0; } } cout<<c1[n]<<endl; } return 0; }