|
用1出现个数模拟顺时针:
SELECT COUNT(*)
FROM ( SELECT NVL(LENGTH(REPLACE(SYS_CONNECT_BY_PATH(c,','),',')),0) n
FROM (SELECT '1' c FROM DUAL UNION ALL SELECT '' FROM DUAL)
WHERE LEVEL=12
CONNECT BY LEVEL<=12
)
WHERE MOD(N*60-(12-n)*60,360)=0;
COUNT(*)
----------
1366
POWER(2,12)
-----------
4096
用组合公式:
WITH cc(m,n,lvl) as (
select 1,1,0 from dual
union all
select m*(12-lvl),n*(lvl+1),lvl+1 from cc where lvl<12
)
select sum(m/n) from cc where mod(lvl,3)=0;
SUM(M/N)
----------
1366
|
|