本帖最后由 〇〇 于 2016-6-27 10:42 编辑
//q1
10以下的自然数中,属于3和5的倍数的有3,5,6和9,它们之和是23.
找出1000以下的自然数中,属于3和5的倍数的数字之和。
//我的解答(注意题目是要求1000以下,不包括1000)
=sum(3n)+sum(5n)-sum(15n)
=(3+999/3*3)*(999/3)/2+
(5+999/5*5)*(999/5)/2+
(15+999/15*15)*(999/15)/2
把重复的sum编写为函数
f:{"j"$(x+x*floor 999%x)*(floor 999%x)%2}
f[3]+f[5]-f[15]
答案是233168
与sql检验的相同
with t as(select level l from dual connect by level<1000)
select sum(l)s from t where mod(l,3)=0 or mod(l,5)=0;