用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/29 22:13:47
用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.
#include
#include
int main()
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a
#include
#include
int main()
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a
这道题以前做过,有点印象
其实这道题就2个地方要注意,也是解题关键
abc:def:ghi=1:2:3
1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次
对于第一个地方,我们可以用1个循环,加3个变量来实现
就是
for(i = 123; i <= 329; i++)
{
j = i * 2; //i的2倍
k = i * 3; //i的3倍
}
i 最小只能是123,最大只能是329(因为最大数字只能是987)
第2个地方的实现,我们可以用数学的方法来实现
9加起来真能是45,9乘起来只能是362880
所以我们可以将前面的i,j,k分别分解出来的9位数字相加,相乘,
看最后的结果是不是45,362880
具体代码
//用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.
#include <stdio.h>
void result(int num, int &result_add, int &result_mul)
{
int i, j, k;
i = num / 100; //百位
j = num / 10 % 10; //十位
k = num % 10; //个位
result_add += i + j + k; //分解出来的位数相加
result_mul *= i * j * k; //相乘
}
int main()
{
int i, j, k;
int result_add, result_mul;
for(i = 123; i <=329; i++)
{
j = i * 2;
k = i * 3;
result_add = 0;
result_mul = 1;
result(i, result_add, result_mul);
result(j, result_add, result_mul);
result(k, result_add, result_mul);
if(result_add == 45 && result_mul == 362880)
printf("%d %d %d\n", i, j, k);
}
return 0;
}
效果:
PS:若有不明白的地方,
再问: 大神可以帮我看下我的程序哪里出错了吗,谢谢!
其实这道题就2个地方要注意,也是解题关键
abc:def:ghi=1:2:3
1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次
对于第一个地方,我们可以用1个循环,加3个变量来实现
就是
for(i = 123; i <= 329; i++)
{
j = i * 2; //i的2倍
k = i * 3; //i的3倍
}
i 最小只能是123,最大只能是329(因为最大数字只能是987)
第2个地方的实现,我们可以用数学的方法来实现
9加起来真能是45,9乘起来只能是362880
所以我们可以将前面的i,j,k分别分解出来的9位数字相加,相乘,
看最后的结果是不是45,362880
具体代码
//用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.
#include <stdio.h>
void result(int num, int &result_add, int &result_mul)
{
int i, j, k;
i = num / 100; //百位
j = num / 10 % 10; //十位
k = num % 10; //个位
result_add += i + j + k; //分解出来的位数相加
result_mul *= i * j * k; //相乘
}
int main()
{
int i, j, k;
int result_add, result_mul;
for(i = 123; i <=329; i++)
{
j = i * 2;
k = i * 3;
result_add = 0;
result_mul = 1;
result(i, result_add, result_mul);
result(j, result_add, result_mul);
result(k, result_add, result_mul);
if(result_add == 45 && result_mul == 362880)
printf("%d %d %d\n", i, j, k);
}
return 0;
}
效果:
PS:若有不明白的地方,
再问: 大神可以帮我看下我的程序哪里出错了吗,谢谢!
用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.
JAVA题目:用1,2,3,……9组成3个三位数 abc,def和ghi,每个数字恰好试用一次,要求abc:def:gh
一道排列算法题排列用1,2,3,...,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def
用1~9组成3个三位数,每个数字使用一次使得abc:def:ghi=1:2:3,输出所有解
python 如何判断 abc-def-ghi-1 最后一位是不是数字
ABC数字和 + DEF数字和 - 相加时发生进位次数*9 = GHI 这个规律是古人推出来并验证的吗?
python 如何把list中元素一个对一个的换成对应的数字 list = ['abc', 'def', 'ghi']
把1到9填入ab*c+def=ghi,不重复,使等式成立
1,2,3,4,5,6每个数使用一次组成abcdef,使abc,bcd,cde,def依次被4,5.3、11整除,求该六
把数字1,2,3,…,9分别填入下图的9个圈内,要求三角形ABC和三角形DEF的每条边上三个圈内数字之和都等于18.图中
把数字1,2,3,…,9分别填入右图的9个圈内,要求三角形ABC和三角形DEF的每条边上三个圈内数位之和等于18.
如图,三角形ABC中,AF∶FB=BD∶DC=CE∶AE=3∶2,且三角形GHI的面积是1,求三角形ABC的面积(要求只