|
用大数算法做Q25,
WITH t(r
,a1
,a2
,a3
,a4
,a5
,a6
,a7
,a8
,a9
,a10
,a11
,a12
,a13
,a14
,a15
,a16
,a17
,a18
,a19
,a20
,a21
,a22
,a23
,a24
,a25
,a26
,a27
,a28
,a29
,a30
,b1
,b2
,b3
,b4
,b5
,b6
,b7
,b8
,b9
,b10
,b11
,b12
,b13
,b14
,b15
,b16
,b17
,b18
,b19
,b20
,b21
,b22
,b23
,b24
,b25
,b26
,b27
,b28
,b29
,b30
)
AS (
SELECT 1 R
,0 a1
,0 a2
,0 a3
,0 a4
,0 a5
,0 a6
,0 a7
,0 a8
,0 a9
,0 a10
,0 a11
,0 a12
,0 a13
,0 a14
,0 a15
,0 a16
,0 a17
,0 a18
,0 a19
,0 a20
,0 a21
,0 a22
,0 a23
,0 a24
,0 a25
,0 a26
,0 a27
,0 a28
,0 a29
,0 a30
,1 b1
,0 b2
,0 b3
,0 b4
,0 b5
,0 b6
,0 b7
,0 b8
,0 b9
,0 b10
,0 b11
,0 b12
,0 b13
,0 b14
,0 b15
,0 b16
,0 b17
,0 b18
,0 b19
,0 b20
,0 b21
,0 b22
,0 b23
,0 b24
,0 b25
,0 b26
,0 b27
,0 b28
,0 b29
,0 b30
FROM DUAL
UNION ALL
SELECT r+1
,b1
,b2
,b3
,b4
,b5
,b6
,b7
,b8
,b9
,b10
,b11
,b12
,b13
,b14
,b15
,b16
,b17
,b18
,b19
,b20
,b21
,b22
,b23
,b24
,b25
,b26
,b27
,b28
,b29
,b30
,MOD(a1 + b1 ,1e34)
,MOD(a2 + b2 + CASE WHEN a1 + b1 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a3 + b3 + CASE WHEN a2 + b2 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a4 + b4 + CASE WHEN a3 + b3 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a5 + b5 + CASE WHEN a4 + b4 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a6 + b6 + CASE WHEN a5 + b5 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a7 + b7 + CASE WHEN a6 + b6 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a8 + b8 + CASE WHEN a7 + b7 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a9 + b9 + CASE WHEN a8 + b8 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a10 + b10 + CASE WHEN a9 + b9 >1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a11 + b11 + CASE WHEN a10 + b10>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a12 + b12 + CASE WHEN a11 + b11>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a13 + b13 + CASE WHEN a12 + b12>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a14 + b14 + CASE WHEN a13 + b13>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a15 + b15 + CASE WHEN a14 + b14>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a16 + b16 + CASE WHEN a15 + b15>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a17 + b17 + CASE WHEN a16 + b16>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a18 + b18 + CASE WHEN a17 + b17>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a19 + b19 + CASE WHEN a18 + b18>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a20 + b20 + CASE WHEN a19 + b19>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a21 + b21 + CASE WHEN a20 + b20>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a22 + b22 + CASE WHEN a21 + b21>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a23 + b23 + CASE WHEN a22 + b22>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a24 + b24 + CASE WHEN a23 + b23>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a25 + b25 + CASE WHEN a24 + b24>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a26 + b26 + CASE WHEN a25 + b25>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a27 + b27 + CASE WHEN a26 + b26>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a28 + b28 + CASE WHEN a27 + b27>1e34 THEN 1 ELSE 0 END,1e34)
,MOD(a29 + b29 + CASE WHEN a28 + b28>1e34 THEN 1 ELSE 0 END,1e34)
,a30 + b30 + CASE WHEN a29 + b29>1e34 THEN 1 ELSE 0 END
FROM t
WHERE b30<1e13
)
CYCLE r SET cycle_flag TO 'Y' DEFAULT 'N'
SELECT MAX(r) FROM t;
MAX(R)
----------
4782
Elapsed: 00:00:00.10
[ 本帖最后由 newkid 于 2010-12-21 06:05 编辑 ] |
|