抹蛋糕

#include<stdio.h> int N=100; int M=2; int s; int min=9999; void dangao(int ceng,int dangv,int h,int r) {   if(s>min)   return;  if(dangv>N)   return;  if(ceng==M+1)  {   if(dangv==N)   {    if(min>s)    {     min=s;

   }     }     return;  }  for(int rr=r;rr>0;rr--)  {    for(int hh=h;hh>0;hh--)     {       if(ceng==1)       {         s=rr*rr;       }       s=s+2*rr*hh;       dangao(ceng+1,dangv+rr*rr*hh,hh-1,rr-1);      s=s-2*rr*hh;     }   } } int main() {  dangao(1,0,100,10);  printf("%d",min);   return 0; }

原文地址:https://www.cnblogs.com/452035305qq/p/6165192.html