解题思路:打表
注意事项:
参考代码:
#include<iostream> #include<algorithm> using namespace std; long long res,n; void dfs(int pre,int sum) { if(sum==n) { res++; return ; } if(sum>n) return ; for(int i=pre;i+sum<=n;i++) { dfs(i,sum+i); } } int main(void) { /* freopen("D:\\outputdemo","w",stdout); for(int i=1;i<=100;i++) { n=i; res=0; dfs(1,0); printf("a[%d]=%d;\n",i,res); } */ int n,a[110]; cin>>n; a[1]=1; a[2]=2; a[3]=3; a[4]=5; a[5]=7; a[6]=11; a[7]=15; a[8]=22; a[9]=30; a[10]=42; a[11]=56; a[12]=77; a[13]=101; a[14]=135; a[15]=176; a[16]=231; a[17]=297; a[18]=385; a[19]=490; a[20]=627; a[21]=792; a[22]=1002; a[23]=1255; a[24]=1575; a[25]=1958; a[26]=2436; a[27]=3010; a[28]=3718; a[29]=4565; a[30]=5604; a[31]=6842; a[32]=8349; a[33]=10143; a[34]=12310; a[35]=14883; a[36]=17977; a[37]=21637; a[38]=26015; a[39]=31185; a[40]=37338; a[41]=44583; a[42]=53174; a[43]=63261; a[44]=75175; a[45]=89134; a[46]=105558; a[47]=124754; a[48]=147273; a[49]=173525; a[50]=204226; a[51]=239943; a[52]=281589; a[53]=329931; a[54]=386155; a[55]=451276; a[56]=526823; a[57]=614154; a[58]=715220; a[59]=831820; a[60]=966467; a[61]=1121505; a[62]=1300156; a[63]=1505499; a[64]=1741630; a[65]=2012558; a[66]=2323520; a[67]=2679689; a[68]=3087735; a[69]=3554345; a[70]=4087968; a[71]=4697205; a[72]=5392783; a[73]=6185689; a[74]=7089500; a[75]=8118264; a[76]=9289091; a[77]=10619863; a[78]=12132164; a[79]=13848650; a[80]=15796476; a[81]=18004327; a[82]=20506255; a[83]=23338469; a[84]=26543660; a[85]=30167357; a[86]=34262962; a[87]=38887673; a[88]=44108109; a[89]=49995925; a[90]=56634173; a[91]=64112359; a[92]=72533807; a[93]=82010177; a[94]=92669720; a[95]=104651419; a[96]=118114304; a[97]=133230930; a[98]=150198136; a[99]=169229875; a[100]=190569292; cout<<a[n]; return 0; }
0.0分
7 人评分