急求C语言程序:将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三

急求C语言程序:将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三位数构成1:2:3的比例,例如:3个三位数192,384,576满足以上... 急求C语言程序:将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三位数构成1:2:3的比例,例如:3个三位数192,384,576满足以上条件.192:384:576=1:2:3。试求出所有满足条件的3个三位数。 真的没办法了 展开
 我来答
helehappy
2015-12-05 · TA获得超过464个赞
知道小有建树答主
回答量:321
采纳率:0%
帮助的人:266万
展开全部
int check(int a,int b,int c)
{
    int test[9]={0},i;
    long num = a*1000000+b*1000+c;
    if(b>1000 || c>1000)return 0;//确保是三位数
    for(i = 0;i < 10;i++)
    {
        int temp = num%10;
        num/=10;
        temp--;
        if(test[temp] == 0)
        {
            test[temp] = 1;
        }
        else return 0;
    }
    return 1;
}

int main()
{
    int i,j,k;
    int num;
    for(i = 1;i < 10;i++)
    {
        for(j =1;j < 10;j++)
        {
            if(i!=j)
            {
                for(k = 1; k < 10;k++)
                {
                    if(k!=j)
                    {
                        num = i+j*10+k*100;
                        if(check(num,num*2,num*3)){
                            printf("%d %d %d\n",num,num*2,num*3);
                        }
                    }
                }
            }
        }
    }
    return 0;
}

上面刚写的,实现思路:先把所有三位数找出来(并且三位数不能相同),上面代码的关键在check方法,我先把它传递进来的三个数据进行检查,因为传递过来的时候就是构成1:2:3的比例,我现在就是要检查是否是从1到9所有数字都有并且不重复(不懂就追问。)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式