【 以下文字转载自 IQDoor 讨论区 】
发信人: MetalSlugX (冰天雪地敲冰块,春光灿烂挖臭虫), 信区: IQDoor
标 题: Re: 求鸡和兔的数量 === 请用编程的方法
发信站: 水木社区 (Wed Apr 22 17:15:06 2020), 站内
(
求鸡和兔的数量
有一群鸡和一群兔,它们的只数相同,它们的脚数都是三位数,且这两个三位数的数字分别
是0,1,2,3,4,5,每个数字只能用一次。
运行环境:
https://thebeez.home.xs4all.nl/4tH/运行方式:4th cx 兔鸡.4th
运行结果:兔、鸡各76 只,鸡脚数目:152 ,兔脚数目:304
)
10 array foo \ 初始化数组,记录0~9每一位数字出现的次数
: #数组元素+1
dUp
foo cELLS + @
1 +
swap
foo cells + !
;
: 数组所有元素=0
6 0 do
0 foo I cells + !
loop
;
: 显示数组
." ["
6 0 do
foo I cells + @ .
loop
." ]"
;
: 拆分百、十、个位 ( n -- 百 十 个 )
dup dup >r >r
100 /
r> 10 / 10 mod
r> 10 mod
;
variable 是否只用1次 \ 0~5是否只出现一次
variable M \ 对数组循环,查看各位时的下标变量
999 4 / 1 + 100 2 / DO
数组所有元素=0
1 是否只用1次 ! \ 初始化为1
\ ." 兔、鸡各" I . ." 只,"
I 2*
\ dup ." 鸡脚数目:" . ." ,"
拆分百、十、个位
#数组元素+1
#数组元素+1
#数组元素+1
I 4 *
\ dup ." 兔脚数目:" .
拆分百、十、个位
#数组元素+1
#数组元素+1
#数组元素+1
\ 显示数组
\ cr
0 M !
begin
foo M @ cells + @ 1 <> if
0 是否只用1次 !
then
1 M +!
M @ 6 = until
是否只用1次 @ 1 = if
." 兔、鸡各" I . ." 只,"
I 2*
dup ." 鸡脚数目:" . ." ,"
I 4 *
dup ." 兔脚数目:" .
then
LOOP
【 在 javame (javame) 的大作中提到: 】
: 有一群鸡和一群兔,它们的只数相同,它们的脚数都是三位数,且这两个三位数的数字分别是0,1,2,3,4,5,每个数字只能用一次。
--
修改:MetalSlugX FROM 117.140.171.*
FROM 117.140.171.*