100块钱,换零钱,换成2,5,10,20,50的,有多少种换法:
这个写法还能优化,可以减少一个表的笛卡尔集,目前先不做了
SQL> WITH t2 AS
2 (SELECT rownum-1 a2 FROM dual CONNECT BY rownum<100/2+1 ), t5 AS
3 (SELECT rownum-1 a5 FROM dual CONNECT BY rownum<100/5+1 ), t10 AS
4 (SELECT rownum-1 a10 FROM dual CONNECT BY rownum<100/10+1),t20 AS
5 (SELECT rownum-1 a20 FROM dual CONNECT BY rownum<100/20+1),t50 AS
6 (SELECT rownum-1 a50 FROM dual CONNECT BY rownum<100/50+1)
7 SELECT a2,
8 a5,
9 a10,
10 a20,
11 a50
12 FROM t2,
13 t5,
14 t10,
15 t20,
16 t50
17 WHERE a2*2+a5*5+a10*10+a20*20+a50*50=100;
A2 A5 A10 A20 A50
---------- ---------- ---------- ---------- ----------
0 0 1 2 1
0 0 2 4 0
0 0 3 1 1
0 0 4 3 0
0 0 5 0 1
0 0 6 2 0
0 0 8 1 0
0 2 0 2 1
0 2 1 4 0
0 2 2 1 1
0 2 3 3 0
五位数,ABCDE*4=EDCBA,这个四位数是多少?
SQL> WITH t AS
2 (SELECT rownum r FROM dual CONNECT BY rownum<40000
3 )
4 SELECT r,4*r FROM t WHERE 4*r=reverse(r||'') AND r>10000 ;
R 4*R
---------- ----------
21978 87912
这个写法还能优化,可以减少一个表的笛卡尔集,目前先不做了
SQL> WITH t2 AS
2 (SELECT rownum-1 a2 FROM dual CONNECT BY rownum<100/2+1 ), t5 AS
3 (SELECT rownum-1 a5 FROM dual CONNECT BY rownum<100/5+1 ), t10 AS
4 (SELECT rownum-1 a10 FROM dual CONNECT BY rownum<100/10+1),t20 AS
5 (SELECT rownum-1 a20 FROM dual CONNECT BY rownum<100/20+1),t50 AS
6 (SELECT rownum-1 a50 FROM dual CONNECT BY rownum<100/50+1)
7 SELECT a2,
8 a5,
9 a10,
10 a20,
11 a50
12 FROM t2,
13 t5,
14 t10,
15 t20,
16 t50
17 WHERE a2*2+a5*5+a10*10+a20*20+a50*50=100;
A2 A5 A10 A20 A50
---------- ---------- ---------- ---------- ----------
0 0 1 2 1
0 0 2 4 0
0 0 3 1 1
0 0 4 3 0
0 0 5 0 1
0 0 6 2 0
0 0 8 1 0
0 2 0 2 1
0 2 1 4 0
0 2 2 1 1
0 2 3 3 0
五位数,ABCDE*4=EDCBA,这个四位数是多少?
SQL> WITH t AS
2 (SELECT rownum r FROM dual CONNECT BY rownum<40000
3 )
4 SELECT r,4*r FROM t WHERE 4*r=reverse(r||'') AND r>10000 ;
R 4*R
---------- ----------
21978 87912
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30123160/viewspace-2058939/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30123160/viewspace-2058939/
通过SQL查询优化,解决寻找100元钞票换成2元、5元、10元、20元、50元的兑换方案问题,并揭示四位数乘以4等于其逆序数的数学谜题。
1046

被折叠的 条评论
为什么被折叠?



