九个数字分别组成三个三位数,比例为1:2:3

九个数字分别组成三个三位数,比例为1:2:3

问题描述

【问题描述】

将1到9这九个数字分别组成3个三位数a,b,c,每个数字恰好出现一次,要求a: b :c=1:2:3。

【输入形式】


【输出形式】

要求按照"a b c"的格式(三个数字以一个空格隔开)输出所有解, 每行一个解;如果存在多个解,按a的值升序排列。

C++代码

蛮力法

#include <iostream>
#include <algorithm>
using namespace std;
bool judge(int x[9]);
int main(){
	int x[9];
	for(int i=123;i<330;i++){
		x[0]=i/100;
		x[1]=i/10%10;
		x[2]=i%10;
		x[3]=2*i/100;
		x[4]=2*i/10%10;
		x[5]=2*i%10;
		x[6]=3*i/100;
		x[7]=3*i/10%10;
		x[8]=3*i%10;
		if(judge(x)){
			printf("%d%d%d %d%d%d %d%d%d\n",x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8]);
		}
	}
} 

bool judge(int x[9]){
	int a[9];
	for (int i=0;i<9;i++){
		a[i]=x[i];
	}
	sort(a,a+9);
	if(a[0]==0){
		return false;
	}
	for(int i=1;i<9;i++){
		if(a[i]==0){
			return false;
		}else if(a[i-1]==a[i]){
			return false;
		}
	} 
	return true;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这道题可以有多种解法,以下是一种可能的解法: 首先,将1-9的数字按照大小分成三组,分别是{1,2,3}、{4,5,6}、{7,8,9}。 然后,我们需要将这三组数字分别组成三个三位数,使它们的比例为1:2:3。设这三个三位数依次为ABC,DEF,GHI。 根据比例的定义,我们可以列出以下等式: A : D : G = 1 : 2 : 3 B : E : H = 1 : 2 : 3 C : F : I = 1 : 2 : 3 因为ABC、DEF、GHI都是三位数,所以它们的百位上的数字必须分别来自{1,4,7},十位上的数字必须来自{2,5,8},个位上的数字必须来自{3,6,9}。因此,我们可以列出以下方程组: A + D + G = (1+4+7) + (2+5+8) + (3+6+9) = 45 B + E + H = (1+4+7) + (2+5+8) + (3+6+9) = 45 C + F + I = (1+4+7) + (2+5+8) + (3+6+9) = 45 其中,等式两边的45代表每个三位数的百位数字之和。 接下来,我们可以将比例等式中的A、B、C、D、E、F、G、H、I用它们的百位、十位、个位数字表示出来,即: 100A + 10B + C : 100D + 10E + F : 100G + 10H + I = 1 : 2 : 3 将等式两边同时乘以100,得到: 10000A + 1000B + 100C : 10000D + 1000E + 100F : 10000G + 1000H + 100I = 100 : 200 : 300 化简一下,得到: 100A + 10B + C : 100D + 10E + F : 100G + 10H + I = 1 : 2 : 3 这个比例等式和之前的等式组一起,可以构成一个含有9个未知数的方程组。解这个方程组可以得到ABC、DEF、GHI的值。经过计算,得到一组可能的解为: ABC = 174 DEF = 348 GHI = 522 可以验证,这三个数的比例确实为1:2:3。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rich_Z_b_f

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值