楼主: nyfor

[精华] 最小源代码擂台

[复制链接]
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
421#
发表于 2008-5-28 09:38 | 只看该作者
mod(floor(330/power(2,12-m)),2)

等价于

BITAND(1, 2640/2**M - .2)

使用道具 举报

回复
论坛徽章:
5
奥运会纪念徽章:摔跤
日期:2008-07-02 08:48:392009日食纪念
日期:2009-07-22 09:30:00优秀写手
日期:2013-12-18 09:29:11SQL数据库编程大师
日期:2016-01-13 10:30:43SQL大赛参与纪念
日期:2016-01-13 10:32:19
422#
发表于 2008-5-28 16:55 | 只看该作者
原帖由 DragonBill 于 2008-5-28 09:38 发表
mod(floor(330/power(2,12-m)),2)

等价于

BITAND(1, 2640/2**M - .2)



扣,这什么脑袋
煮了吃了,相信大家的智商能提高很大 一个台阶

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
423#
发表于 2008-5-29 10:47 | 只看该作者
318Byte应该是我能想到的极限了

因为我曾试过, 利用 位操作 的办法虽然能减少 43434434341 这串数字的长度为8, 但增加了其它开销, 得不偿失.
或许还有其它更好的方法吧, 留给有兴趣的人去思考吧
位操作代码如下, 以供大家参考

create or replace function my_add_months(p_date_string varchar2,
                                         p_months      number)
  return varchar2
AS
   C INT := p_date_string;
   H INT := 100;
   Y INT := C/H/H;
   M INT := C/H - Y * H;
   D INT := C MOD H;
   Z INT := Y * 12 + M + p_months;
BEGIN
   LOOP
      C := 28 + BITAND((62648012+0 ** (Y MOD (4 + 12 * 0 ** (Y MOD H))) * 16) / 4 ** M - .5, 3);
      EXIT WHEN Z < 2;
      Y := (Z - 7) / 12;
      M := Z - Y * 12;
      Z := D/C/2;
   END LOOP;

   RETURN Y * H * H + M * H + LEAST(C, Z || D);
END;
/

使用道具 举报

回复
论坛徽章:
18
生肖徽章2007版:虎
日期:2008-04-11 18:37:24奥运会纪念徽章:击剑
日期:2008-07-03 11:38:17迷宫蛋
日期:2011-05-10 13:03:40茶鸡蛋
日期:2011-05-10 13:05:16蜘蛛蛋
日期:2011-05-10 13:07:01灰彻蛋
日期:2012-12-10 11:47:16鲜花蛋
日期:2013-07-07 10:07:20
424#
发表于 2008-5-29 10:48 | 只看该作者
原帖由 于 2008-5-28 16:55 发表


扣,这什么脑袋
煮了吃了,相信大家的智商能提高很大 一个台阶


使用道具 举报

回复
论坛徽章:
5
奥运会纪念徽章:摔跤
日期:2008-07-02 08:48:392009日食纪念
日期:2009-07-22 09:30:00优秀写手
日期:2013-12-18 09:29:11SQL数据库编程大师
日期:2016-01-13 10:30:43SQL大赛参与纪念
日期:2016-01-13 10:32:19
425#
发表于 2008-5-29 15:57 | 只看该作者
原帖由 DragonBill 于 2008-5-29 10:48 发表




谢谢提供刀子
请自裁吧

使用道具 举报

回复
论坛徽章:
47
马上加薪
日期:2014-02-19 11:55:142011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:012010新春纪念徽章
日期:2010-03-01 11:20:512010年世界杯参赛球队:日本
日期:2010-02-26 11:04:222010新春纪念徽章
日期:2010-01-04 08:33:08祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:牛
日期:2009-09-10 11:14:59
426#
发表于 2008-5-29 20:53 | 只看该作者
请版主取消置顶,谢谢楼主红包

使用道具 举报

回复
论坛徽章:
1
生肖徽章2007版:兔
日期:2009-03-10 21:13:50
427#
发表于 2008-6-12 09:06 | 只看该作者
Congratulation ... Code Length: 167 Bytes. Times: 00:00:01


create or replace function my_add_months(p_date_string varchar2,
                                         p_months      number)
  return varchar2 is

begin

   return to_char((add_months(to_date(p_date_string,'yyyymmdd'),p_months)),'yyyymmdd');

end;

使用道具 举报

回复
论坛徽章:
0
428#
发表于 2008-6-25 23:50 | 只看该作者
429的哥们,你看看题目。。。

使用道具 举报

回复
论坛徽章:
1
生肖徽章2007版:兔
日期:2009-03-10 21:13:50
429#
发表于 2008-6-26 09:02 | 只看该作者
有点幽默感嘛~

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:虎
日期:2008-12-02 17:45:002010新春纪念徽章
日期:2010-01-04 08:33:08ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
430#
发表于 2008-6-30 10:52 | 只看该作者
Congratulation ... Code Length: 605 Bytes. Times: 00:00:08

哎,写这么个小程序都费半天劲,迟钝啊迟钝

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表