luogu----P1008 [NOIP 1998 普及组] 三连击
一种新的思路。九个数字和为1加到9积为9的阶乘只有两种情况这又牵涉到了另外一个问题即为123456789和124445799很显然最小数的百位数字区间为[13]因为它乘上3要是三位数。124445799中如果1是最小数的百位数字由于没有3则2一定也是百位数字乘2。最小数的个位就不能是4和5和7乘3不满足和9乘2不满足。如果2是最小数的百位数字则7一定也是百位数字乘3。最小数的个位就不能是1和4和5和9乘3。因此得到结论满足各个位的数字和为1加到9积为9的阶乘的三个三位数只有1到9的组合下面给出程序#includeiostreamusingnamespacestd;intmain(){inta,b,c;for(inti1;i3;i)//最小数的百位for(intj1;j9;j)//最小数的十位for(intk1;k9;k)//最小数的个位{if(ji||jk||ki)//排除掉最小数各个位的数字相同的情况continue;a100*i10*jk;//最小数b2*a;c3*a;if(c1000)return0;intlb/100,m(b-l*100)/10,nb%10;//提取三个三位数的各个位的数字intoc/100,p(c-o*100)/10,qc%10;if(ijklmnopq123456789i*j*k*l*m*n*o*p*q1*2*3*4*5*6*7*8*9)couta b cendl;}return0;}MrBlack作者OK,到此为止下课!