將1,2,…,9共9個(gè)數(shù)分成三組,分別組成三個(gè)三位數(shù),且使這三個(gè)三位數(shù)構(gòu)成
1:2:3的比例,試求出所有滿足條件的三個(gè)三位數(shù)。
例如:三個(gè)三位數(shù)192,384,576滿足以上條件。
題目比較基礎(chǔ),自己用的回朔法,萬(wàn)里高樓平地起,慢慢來(lái)吧...
/* Note:Your choice is C IDE */
#define null 0
#include "stdio.h"
void inject(int N,int *nNum)
{
int sum[3],i,j,k;
if(N==0)
{
sum[0]=*nNum*100+*(nNum+1)*10+*(nNum+2);
sum[1]=*(nNum+3)*100+*(nNum+4)*10+*(nNum+5);
sum[2]=*(nNum+6)*100+*(nNum+7)*10+*(nNum+8);
if(((sum[0]<<1)==sum[1])&&((3*sum[0])==sum[2]))
{
printf("we have one of them:");
printf("%d,%d,%d\n",sum[0],sum[1],sum[2]);
}
}
else
{
for(j=0;j<9;j++)
{
if(*(nNum+j)==null)
{
*(nNum+j)=N;
inject(N-1,nNum);
*(nNum+j)=null;
}
}
}
}
main()
{
int k;
int Num[9];
for(k=0;k<9;k++)
{
Num[k]=null;
}
inject(9,Num);
}