一道基础题

一道基础题

12,…,99个数分成三组,分别组成三个三位数,且使这三个三位数构成

   123的比例,试求出所有满足条件的三个三位数。

   例如:三个三位数192,384,576满足以上条件。
题目比较基础,自己用的回朔法,万里高楼平地起,慢慢来吧...
/* 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);
}

你可能感兴趣的:(一道基础题)