#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; }
时间: 2024-10-06 08:25:10