来个休闲型的问题,很简单的

waltersure 2001-10-04 03:59:45
5,5,5,1这四个数字各仅用一次,用四则运算得到24(就象文曲星上的24点牌游戏)
P。S:想不出来的话不要说脏话哦!
...全文
143 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
intfree 2001-12-14
  • 打赏
  • 举报
回复
附这16个式子

1: (6/(1-(3/4)))
2: (4/(1-(5/6)))
3: ((5-(1/5))*5)
4: (6/(1-(6/8)))
5: (12/((12/8)-1))
6: ((2+(2/11))*11)
7: ((2-(2/13))*13)
8: (12/(3-(5/2)))
9: ((2+(4/10))*10)
10: ((5-(2/10))*5)
11: ((2+(10/7))*7)
12: ((3+(3/7))*7)
13: (8/(3-(8/3)))
14: ((4-(4/7))*7)
15: (5*(7-(11/5)))
16: ((5-(11/7))*7)
intfree 2001-12-14
  • 打赏
  • 举报
回复
24点,变态的式子生成器,

共找到16个,

const
n = 4;
s = 24;
e = 1e-9;

var
v: array[1 .. n] of double;
expr: array[1 .. n] of string;
idx: integer;
hard: boolean;
ans: string;

procedure search(d: integer; ishard: boolean);
var
p, q: integer;
a, b: double;
sa, sb: string;
h: boolean;
begin

if not hard then exit;
if (d = 1) and (abs(v[d] - s) < e) then
if not ishard then hard := false else ans := expr[d];

for p := 1 to d - 1 do
for q := p + 1 to d do begin
a := v[p]; b := v[q]; v[q] := v[d];
sa := expr[p]; sb := expr[q]; expr[q] := expr[d];

expr[p] := '(' + sa + '+' + sb + ')';
v[p] := a + b; search(d - 1, ishard);
expr[p] := '(' + sa + '-' + sb + ')';
v[p] := a - b; search(d - 1, ishard);
expr[p] := '(' + sb + '-' + sa + ')';
v[p] := b - a; search(d - 1, ishard);
expr[p] := '(' + sa + '*' + sb + ')';
v[p] := a * b; search(d - 1, ishard);
if b <> 0 then begin
expr[p] := '(' + sa + '/' + sb + ')';
h := abs(int(a / b) - a / b) > e;
v[p] := a / b; search(d - 1, ishard or h);
end;
if a <> 0 then begin
expr[p] := '(' + sb + '/' + sa + ')';
h := abs(int(b / a) - b / a) > e;
v[p] := b / a; search(d - 1, ishard or h);
end;

expr[p] := sa; expr[q] := sb;
v[p] := a; v[q] := b;
end;
end;

var
a, b, c, d, sum: integer;
begin

for a := 1 to 13 do
for b := a to 13 do
for c := b to 13 do
for d := c to 13 do begin
v[1] := a; v[2] := b; v[3] := c; v[4] := d;
for idx := 1 to n do str(v[idx] : 0 : 0, expr[idx]);
hard := true; ans := '';
search(n, false);
if hard and (ans <> '') then begin
sum := sum + 1;
writeln(sum, ': ', ans);
end;
end;
end.
intfree 2001-12-14
  • 打赏
  • 举报
回复
to mathe:
你从那弄来这么多变态的式子,

这个程序可以搞定所有的哦:)

const
n = 4;
s = 24;
e = 1e-9;

var
v: array[1 .. n] of double;
expr: array[1 .. n] of string;
idx: integer;

procedure search(d: integer);
var
p, q: integer;
a, b: double;
sa, sb: string;
begin
if (d = 1) and (abs(v[d] - s) < e) then
writeln(expr[d]);

for p := 1 to d - 1 do
for q := p + 1 to d do begin
a := v[p]; b := v[q]; v[q] := v[d];
sa := expr[p]; sb := expr[q]; expr[q] := expr[d];

expr[p] := '(' + sa + '+' + sb + ')';
v[p] := a + b; search(d - 1);
expr[p] := '(' + sa + '-' + sb + ')';
v[p] := a - b; search(d - 1);
expr[p] := '(' + sb + '-' + sa + ')';
v[p] := b - a; search(d - 1);
expr[p] := '(' + sa + '*' + sb + ')';
v[p] := a * b; search(d - 1);
if b <> 0 then begin
expr[p] := '(' + sa + '/' + sb + ')';
v[p] := a / b; search(d - 1);
end;
if a <> 0 then begin
expr[p] := '(' + sb + '/' + sa + ')';
v[p] := b / a; search(d - 1);
end;

expr[p] := sa; expr[q] := sb;
v[p] := a; v[q] := b;
end;
end;

begin

v[1] := 3;
v[2] := 3;
v[3] := 8;
v[4] := 8;

for idx := 1 to n do str(v[idx] : 0 : 0, expr[idx]);
search(n);
end.
yug 2001-12-11
  • 打赏
  • 举报
回复
呵呵,再出几个试试:
3,3,7,7
4,4,7,7
1,3,4,6
mathe 2001-12-11
  • 打赏
  • 举报
回复
To MadLee,无解
MadLee 2001-12-11
  • 打赏
  • 举报
回复
7,7,7,7
8,8,8,8
9,9,9,9
10,10,10,10
有解吗
mathe 2001-12-11
  • 打赏
  • 举报
回复
还有
10,10,4,4
2,3,5,12
3,3,8,8
mathe 2001-12-11
  • 打赏
  • 举报
回复
怎么每人做?再来几道:
10,8,8,3
10,10,4,2
10,7,7,2
10,6,6,6
10,6,4,1
10,5,5,2
再加上上面三道
10,10,4,4
2,3,5,12
3,3,8,8
g9yuayon 2001-12-11
  • 打赏
  • 举报
回复
24 = 7*(3 + 3/7)
24 = 7*(4-4/7)
24=6/(1-3/4)

唉,这类题有通用解法的,同志们不妨试试逆波兰。不就是个排列组合
么?
wsztk 2001-12-10
  • 打赏
  • 举报
回复
好老的题目啊~
weekease 2001-10-10
  • 打赏
  • 举报
回复
如果这个问题,是你想出来的。
我真把你当成神仙了。
selfhood 2001-10-05
  • 打赏
  • 举报
回复
好象有人问过了
rami 2001-10-05
  • 打赏
  • 举报
回复
厉害。
CNer 2001-10-05
  • 打赏
  • 举报
回复
wan la!
aborigine 2001-10-04
  • 打赏
  • 举报
回复
5*(5-1/5)=24
《android编程典型实例与项目开发 含cd光盘1张 》主要以android平台下应用软件开发的基础知识为主题 并结合真实的案例为读者详细介绍android平台下的商务软件 3d游戏程序及2d游戏程序的开发流程 《android编程典型实例与项目开发 含cd光盘1张 》分为两篇共15章 第一篇以大量简单易懂的实例为依托 详细地介绍了android平台下应用程序开发各方面的基础知识;第二篇则通过对三个真实案例开发进行详细介绍 让读者很容易将所学的知识融会贯通 快速掌握android平台下的商务软件 3d游戏及2d游戏的开发过程 同时在本书随书光盘的源代码中包含详尽的注释 以求尽量帮助读者快速理解代码的每一个细节 尽快掌握android平台下的软件开发技巧 《android编程典型实例与项目开发 含cd光盘1张 》的讲解由浅入深 从android平台下开发应用软件的基础知识到开发大型商务软件 3d游戏及2d游戏 程序思路清晰明朗 语言简明扼要 非常适合初学者和一般开发人员阅读参考 android编程典型实例与项目开发 含cd光盘1张 目录: 第一篇 开发知识库大全 第1章 android简介及其开发环境的搭建 2 第2章 android简单控件的开发及应用 15 第3章 android高级控件的开发及应用 71 第4章 手机用户界面的开发 122 第5章 手机通信服务及手机控制 177 第6章 手机的自动服务功能 236 第7章 手机文件i o与数据库的应用 294 第8章 手机网络应用 327 第9章 手机的google服务功能 406 第10章 手机多媒体服务功能 440 第11章 android手机的3d世界 505 第12章 手机特效开发 543 第二篇 案例实战 第13章 蓝鸟健身俱乐部小助手 606 第14章 娱乐游戏 3d迷宫 652 第15章 休闲游戏 q版疯狂大炮 697">《android编程典型实例与项目开发 含cd光盘1张 》主要以android平台下应用软件开发的基础知识为主题 并结合真实的案例为读者详细介绍android平台下的商务软件 3d游戏程序及2d游戏程序的开发流程 《android编程典型实例与项目 [更多]

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧