编程论坛
注册
登录
编程论坛
→
C语言论坛
DEV怎么实现数学游戏的列举?
oyd7141
发布于 2020-11-02 19:10, 1235 次点击
游戏规则:两人轮流报数,每次只能报1或2,把两个人报的所有数加起来,谁报数后和是10,谁就获胜。
程序要求:穷举出所有的方法。
思路:把“每次报的数”和“从根结点累加的和”存放在二叉树的结点上。和小于10,就继续创建子结点;和等于或大于10就不再创建子结点。最后打印累加和为10的结点的父结点。
求实现以上思路的C代码。
3 回复
#2
oyd7141
2020-11-02 19:12
1+1+1+1+1+1+1+1+1+1=10;
1+1+1+1+1+1+1+1+2=10;
1+1+1+1+1+1+1+2+1=10;
……
2+2+2+2+2=10;
#3
rjsp
2020-11-02 21:04
“DEV怎么实现”我不知道,我只知道标准C语言怎么实现
程序代码:
#include
<stdio.h>
int
main(
void
)
{
char
buf[] =
"
1111111111
"
;
//////////////////////////////
//
for
(
int
last=
sizeof
(buf)-
2
; ; )
{
puts( buf );
int
sum = -
1
;
for
( ; last>=
0
&& (sum<
0
|| buf[last]!=
'
1
'
); --last )
sum += buf[last]-
'
0
'
;
if
( last <
0
)
break
;
buf[last] =
'
2
'
;
for
( ; sum>
0
; --sum )
buf[++last] =
'
1
'
;
buf[last+
1
] =
'
\0
'
;
}
}
随手写着玩的,若有错误 概不负责
#4
郭阳yang
2020-11-10 19:59
1