本人面试的一道题目,请大家积极参加

beckhambobo 2003-12-22 12:33:20
加精
随机选四个数(1..10)之间,经过加减乘除后结果为24,系统自动为'yes',否则为'no';

大家可用任何一种语言作答!各位版主带头先做.
...全文
2071 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
adaizi1980 2004-03-23
  • 打赏
  • 举报
回复
高手们编了不少代码了,我来试着分析一下问题实质吧:<1>数值组合:获取1~10组成的可重复的四个值的任意组合C1;〈2〉符号组合:获取'+','-','*','/'四个符号中可重复的三个值的任意组合C2;<3>排序:对得到的符号集合C2排序 得到符号序列P2;<4>分组:将得到的数值集合C1分组(如:(((a1,a2),a3),a4)和((a1,a2),(a3,a4))为两种不同的分组)得到分组集合Z2;<5>插入:将符号序列P2插入数值分组集合Z2;<5>差错控制:如果在一个数值组合C1[X]中得到了一个预期结果值true,则跳出本集合中的过程(防止出现重复),执行下一集合上的操作;<6>缺省返回值:false。
呵呵,不知道分析的对不对,请高手们多指教哦~~~,没时间编代码了,下次补上吧~~。
mybjlife 2004-03-23
  • 打赏
  • 举报
回复
4个8可以吗?
an7coding 2004-03-22
  • 打赏
  • 举报
回复
mark
sinotrans 2004-03-05
  • 打赏
  • 举报
回复
budong
shahand 2004-03-05
  • 打赏
  • 举报
回复
斑竹请帮忙把
http://expert.csdn.net/Expert/TopicView1.asp?id=2672395
揭帖了
谢谢
jyk1970 2004-02-28
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2735/2735514.xml?temp=.4493677
jyk1970 2004-02-15
  • 打赏
  • 举报
回复
--改进之后得到的1737个结果
(1+1+1)*8
(1+1)*2*6
(1+1+2)*6
(1+2)*(1+7)
(1*1+2)*8
(1*2+1)*8
(1/1+2)*8
(1+2)*1*8
(1+2)*8/1
(2/1+1)*8
(1+2)*(9-1)
(1+1+10)*2
(1+1)*(2+10)
(1+1)*3*4
(1+3)*(1+5)
(1*1+3)*6
(1*3+1)*6
(1/1+3)*6
(1+1+6)*3
(1+3)*1*6
(1+3)*6/1
(3/1+1)*6
(1*1+7)*3
(1*7+1)*3
(1/1+7)*3
(1+7)*1*3
(1+7)*3/1
(7/1+1)*3
(1+3)*(7-1)
(1-1+3)*8
(1-1+8)*3
1*1*3*8
1*3*8/1
3*8-1+1
3*8/1/1
(1*9-1)*3
(9-1)*1*3
(9-1)*3/1
(9/1-1)*3
3*(9-1*1)
3*(9-1/1)
(1+1)*(3+9)
(10-1-1)*3
(1+1+4)*4
(1*1+5)*4
(1*5+1)*4
(1/1+5)*4
(1+4)*5-1
(1+5)*1*4
(1+5)*4/1
(5/1+1)*4
(1-1+4)*6
(1-1+6)*4
1*1*4*6
1*4*6/1
4*6-1+1
4*6/1/1
(1*7-1)*4
(7-1)*1*4
(7-1)*4/1
(7/1-1)*4
4*(7-1*1)
4*(7-1/1)
(1+7)*(4-1)
(1*4-1)*8
(4-1)*1*8
(4-1)*8/1
(4/1-1)*8
(8-1-1)*4
8*(4-1*1)
8*(4-1/1)
(1+1)*(4+8)
(1-4)*(1-9)
(1+1)*10+4
1*5*5-1
(5*5-1)*1
(5*5-1)/1
5*5/1-1
(1+5)*(5-1)
5*5-1*1
5*5-1/1
(1*5-1)*6
(5-1)*1*6
(5-1)*6/1
(5/1-1)*6
(6-1)*5-1
6*(5-1*1)
6*(5-1/1)
(1-5)*(1-7)
(1+1)*(5+7)
(5-1-1)*8
(6-1-1)*6
(1+1)*(6+6)
6*8/(1+1)
(1+1)*9+6
(1+1)*7+10
(1+1)*8+8
(1+2)*2*4
(1+5)*2*2
(1+5)*(2+2)
1*2*2*6
(1*2+2)*6
2*2*6/1
(2/1+2)*6
(2+2)*1*6
(2+2)*6/1
(1+2)*(2+6)
(7-1)*2*2
(2+2)*(7-1)
(2-1+2)*8
(2*2-1)*8
(1+2+9)*2
(1*2+10)*2
(1*10+2)*2
(1+10)*2+2
(2/1+10)*2
(2+10)*1*2
(2+10)*2/1
(10/1+2)*2
(1+2)*(10-2)
(1+3)*2*3
1*2*3*4
(1+2+3)*4
2*3*4/1
(1+3)*(2+4)
(1+2+5)*3
(2+3)*5-1
(5-1)*2*3
(1+2)*(3+5)
(1*2+6)*3
(1*6+2)*3
(2-1+3)*6
(2/1+6)*3
(2+6)*1*3
(2+6)*3/1
(3-1)*2*6
(6/1+2)*3
(1+2)*7+3
(2-1+7)*3
3*7+1+2
(1+3+8)*2
(2-1)*3*8
3*8/(2-1)
8/(1-2/3)
(1+3)*(8-2)
(1-2+9)*3
(1*3+9)*2
(1*9+3)*2
(1+2)*9-3
3*9-1-2
(3/1+9)*2
(3+9)*1*2

............


(4-8+7)*8
4*(7-8/8)
7*8-4*8
(7-9+8)*4
8*9/(7-4)
(4+8)*(9-7)
7*8/4+10
4*(7-9/9)
4*10-7-9
(7-10+9)*4
(9-7)*10+4
4*(7-10/10)
(8-4)*8-8
8*8/4+8
8*(4-8/8)
(4-9+8)*8
4*10-8-8
(8-10+8)*4
(4+8)*(10-8)
8*8-4*10
8*(4-9/9)
(4-10+9)*8
8-4+10+10
(10-8)*10+4
8*(4-10/10)
9-4+9+10
5*5-5/5
5*5-6+5
6*(5-5/5)
5+5+5+9
(5-6+5)*6
5*(6-6/5)
5*5-6/6
5*5-7+6
5*7-5-6
5+5+6+8
5+5+7+7
5*5-7/7
(5+7)*(7-5)
7*7-5*5
(5-7+5)*8
5*5-8+7
(5+7)*10/5
5*5-8/8
5*5-9+8
(8-5)*5+9
(5+10)*8/5
8*(5-10/5)
5*5-9/9
5*5-10+9
5*5-10/10
6*(5-6/6)
(5-7+6)*6
5+6+6+7
6*6-5-7
(6+6)*(7-5)
(8-5)*6+6
6*9-5*6
(6+6)*10/5
(10-5)*6-6
6*(6-10/5)
6*(5-7/7)
(5-8+7)*6
6*8/(7-5)
(5+7)*(8-6)
(7-5)*9+6
(5-8+6)*8
6*(5-8/8)
(5-9+8)*6
(6+9)*8/5
5*6*8/10
5*8-6-10
(8-5)*10-6
(9-6)*5+9
6*(5-9/9)
(5-10+9)*6
9*10/5+6
(10+10)*6/5
6*(5-10/10)
(5+7)*(9-7)
(7-5)*7+10
(7-5)*8+8
(7+8)*8/5
(5-9+7)*8
5*8-7-9
(5+7)*(10-8)
(10-7)*5+9
7*10/5+10
5*8-8-8
8*8-5*8
(9-5)*8-8
8*9/(8-5)
(5-10+8)*8
8*10/5+8
9-5+10+10
6*6-6-6
6+6+6+6
(6-8+6)*6
(6+6)*(8-6)
6*6*6/9
(9-6)*6+6
6*10-6*6
(6-9+7)*6
(6+6)*(9-7)
(10-7)*6+6
6*8/(8-6)
(6-9+6)*8
(8-6)*9+6
(6-10+8)*6
(6+6)*(10-8)
(6+10)*9/6
(9-6)*10-6
(7-10+7)*6
6*8/(9-7)
(6-10+7)*8
6*7-8-10
(8-6)*7+10
6*7-9-9
(7+9)*9/6
(9-7)*9+6
(10-7)*10-6
(8-6)*8+8
(8+8)*9/6
8*9-6*8
(8+10)*8/6
(10-6)*8-8
6*8/(10-8)
(9+9)*8/6
8*9/(9-6)
(10-8)*9+6
9*10/6+9
10-6+10+10
(9-7)*7+10
(9-7)*8+8
8*10-7*8
8*9/(10-7)
(10-8)*7+10
(10-8)*8+8
jukyy 2004-02-11
  • 打赏
  • 举报
回复
要是你在这里给出的结果只是部分,第二个问题可能就不存在了。
jukyy 2004-02-11
  • 打赏
  • 举报
回复
TO: jyk1970() 的结果:
1.有重复的,如:
10 + 9 + 1 + 4
9 + 10 + 1 + 4
2.有漏掉的,如:
10/5 * 10 + 4;
10/5 * 9 + 6;
9/3 * 5 + 9;
7*8 / 2 - 4;
............
就是你至少落了*或/与+,与-的组合。


delphi_xizhousheng 2004-02-11
  • 打赏
  • 举报
回复
24点的算法:-)
jyk1970 2004-01-30
  • 打赏
  • 举报
回复
--结果
10 + 10 + 1 + 3
10 + 9 + 1 + 4
9 + 10 + 1 + 4
10 + 8 + 1 + 5
9 + 9 + 1 + 5
8 + 10 + 1 + 5
10 + 7 + 1 + 6
9 + 8 + 1 + 6
8 + 9 + 1 + 6
7 + 10 + 1 + 6
10 + 6 + 1 + 7
9 + 7 + 1 + 7
8 + 8 + 1 + 7
7 + 9 + 1 + 7
6 + 10 + 1 + 7
10 + 5 + 1 + 8
9 + 6 + 1 + 8
8 + 7 + 1 + 8
7 + 8 + 1 + 8
6 + 9 + 1 + 8
5 + 10 + 1 + 8
10 + 4 + 1 + 9
9 + 5 + 1 + 9
8 + 6 + 1 + 9
7 + 7 + 1 + 9
6 + 8 + 1 + 9
5 + 9 + 1 + 9
4 + 10 + 1 + 9
10 + 3 + 1 + 10
9 + 4 + 1 + 10
8 + 5 + 1 + 10
7 + 6 + 1 + 10
6 + 7 + 1 + 10
5 + 8 + 1 + 10
4 + 9 + 1 + 10
3 + 10 + 1 + 10
10 + 10 + 2 + 2
10 + 9 + 2 + 3
9 + 10 + 2 + 3
10 + 8 + 2 + 4
9 + 9 + 2 + 4
8 + 10 + 2 + 4
10 + 7 + 2 + 5
9 + 8 + 2 + 5
8 + 9 + 2 + 5
7 + 10 + 2 + 5
10 + 6 + 2 + 6
9 + 7 + 2 + 6
8 + 8 + 2 + 6
7 + 9 + 2 + 6
6 + 10 + 2 + 6
10 + 5 + 2 + 7
9 + 6 + 2 + 7

........................................................

9 / 3 / 1 * 8
10 / 3 / 1 * 8
8 / 1 / 2 * 6
9 / 1 / 2 * 6
6 / 1 / 2 * 8
7 / 1 / 2 * 8
9 / 1 / 3 * 8
10 / 1 / 3 * 8
8 * 3 / 1 / 1
6 * 4 / 1 / 1
4 * 6 / 1 / 1
3 * 8 / 1 / 1
8 * 6 / 1 / 2
7 * 7 / 1 / 2
6 * 8 / 1 / 2
9 * 8 / 1 / 3
8 * 9 / 1 / 3
8 * 6 / 2 / 1
7 * 7 / 2 / 1
6 * 8 / 2 / 1
9 * 8 / 3 / 1
8 * 9 / 3 / 1

--共5137行
jyk1970 2004-01-30
  • 打赏
  • 举报
回复
create table o
(
code char(1) not null
)
insert into o values('+')
insert into o values('-')
insert into o values('*')
insert into o values('/')
go

create table t
(
id int not null
)
insert into t values(1)
insert into t values(2)
insert into t values(3)
insert into t values(4)
insert into t values(5)
insert into t values(6)
insert into t values(7)
insert into t values(8)
insert into t values(9)
insert into t values(10)
go

--sql解法
select *
from t a, o o1, t b, o o2, t c, o o3, t d
where
(case o3.code
when '+' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)+d.id
when '-' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)-d.id
when '*' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)*d.id
when '/' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)/d.id
end)=24
sleeping100 2004-01-03
  • 打赏
  • 举报
回复
up
anita2li 2004-01-02
  • 打赏
  • 举报
回复
UP
ameng_2002 2004-01-02
  • 打赏
  • 举报
回复
看看
Ranma_True 2003-12-31
  • 打赏
  • 举报
回复
mark
chanet 2003-12-27
  • 打赏
  • 举报
回复
思想第一,代码其次.
[推荐]http://www.csdn.net/develop/Read_Article.asp?Id=20719

里面的代码是由 csdn数据算法版牛人 胡海星 所写,非常值得一看 :)
funnyball 2003-12-27
  • 打赏
  • 举报
回复
<Script language="JavaScript">
function getRandom(){
return parseInt(Math.random()*10)+1;
}
function getTempResult(v1,v2,oNum){
switch(oNum){
case 0:
return v1+v2;
case 1:
return v1-v2;
case 2:
return v1*v2;
case 3:
if(v1%v2==0) return v1/v2;
default:
break;
}
}
function work(){
var MyArr=new Array(4);
for(var i=0;i<4;i++)
MyArr[i]=getRandom();
for(var a=0;a<4;a++){
for(var b=0;b<4;b++){
if(b!=a){
for(var c=0;c<4;c++){
var tempValue1=getTempResult(MyArr[a],MyArr[b],c);
for(var d=0;d<4;d++){
if(d!=a&&d!=b){
for(var e=0;e<4;e++){
var tempValue2=getTempResult(tempValue1,MyArr[d],e);
for(var f=0;f<4;f++){
if(f!=a&&f!=b&&f!=d&&tempValue1!=tempValue2){
for(var g=0;g<4;g++){
var tempValue=getTempResult(tempValue2,MyArr[f],g);
if(tempValue==24)
return true
}
}
}
}
}
}
}
}
}
}
}
</Script>
sagac 2003-12-25
  • 打赏
  • 举报
回复
用vb可以实现,当然vb.net也可以了。
大健 2003-12-22
  • 打赏
  • 举报
回复
up
加载更多回复(7)

17,075

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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