B
beeta
Unregistered / Unconfirmed
GUEST, unregistred user!
我看大家都有点离题了,小学二年级的数学题,没理由有那么多的组合,先看看:
用[yellow]0,1,2,3,4,5,6,7,8,9[/yellow] 十个数,组成一个等式([blue]两个三位数相加等于一个四位数[/blue]),
[green]且每个数不能重复使用[/green]。如: xxx+xxx=xxxx
手工推算的话是可以,但要得出所有解的话也不简单。所以想程序实现,大家各显身手吧!
有分又好玩。
[green]且每个数不能重复使用[/green]就是指10个数字不能重复出现,同时为了满足结果为四位数
那么其组合应该是不多的,先应将10个数组合成三组三位数,然后在看这三组数哪两组能
相加得到四位数
编写思路职下:
1.先得出10个数的组合
2.筛选出满足三组三位数没有重复数字的数组(存在一个三维数组array1中)
a.在1的集合里任意提取一个number1(提取是指要在原集中删除这个数);
b.在1的集合里提取第二个数number2,满足数字不重复。
c.在1的集合里提取第三个数number3,满足数字不重复。
d.重复c.直到在第一,第二个数不变的情况下得出所有的第三个数。(不大于3个)
e.重复a-d得出所在的数组;
3.对数组array1进行循环检测三个数的其中两个数是否满足相加结果为四位数的条件,
满足则将其存在一个二维数组中。
用[yellow]0,1,2,3,4,5,6,7,8,9[/yellow] 十个数,组成一个等式([blue]两个三位数相加等于一个四位数[/blue]),
[green]且每个数不能重复使用[/green]。如: xxx+xxx=xxxx
手工推算的话是可以,但要得出所有解的话也不简单。所以想程序实现,大家各显身手吧!
有分又好玩。
[green]且每个数不能重复使用[/green]就是指10个数字不能重复出现,同时为了满足结果为四位数
那么其组合应该是不多的,先应将10个数组合成三组三位数,然后在看这三组数哪两组能
相加得到四位数
编写思路职下:
1.先得出10个数的组合
2.筛选出满足三组三位数没有重复数字的数组(存在一个三维数组array1中)
a.在1的集合里任意提取一个number1(提取是指要在原集中删除这个数);
b.在1的集合里提取第二个数number2,满足数字不重复。
c.在1的集合里提取第三个数number3,满足数字不重复。
d.重复c.直到在第一,第二个数不变的情况下得出所有的第三个数。(不大于3个)
e.重复a-d得出所在的数组;
3.对数组array1进行循环检测三个数的其中两个数是否满足相加结果为四位数的条件,
满足则将其存在一个二维数组中。