短码之美
2014-04-14 14:39
176 查看
看了《短码之美》一书,果真如封面所示——“编程达人的心得技法”。
怎么说呢,算是学到了一些技巧吧,为了达到究极的短码效果,各种运算揉捏在一起,总有点邪门歪道,衣冠不整的感觉= =!
总的来说是这样的,首先尽量找出规律来,接着写代码,写完瘦身,好了以后再从规律中找更短的规律,就这么while下去,直到extremity才收手。
就比如说POJ 1000:http://poj.org/problem?id=1000【Calculate a+b】
一般看到这种题习惯地写上:
提交一下,恩,114B,蛮短的。
在GCC这个编译器中,是可以省略#include头文件的,另外,C99标准中的规定,main函数不写return语句时仍会返回0,所以不写return语句也没有问题。再来去掉多余的空格和换行。现在呢?
结果如下:
少了一半。完美!
还能优化:
1.在GCC中,省略了全局变量的类型,就会自动视为int类型。
2.scanf("%d %d",&a,&b); 期间的“%d %d”中的空格可以省略。
3.balabala...
这里有一个奇葩的思维,就是把输入的东西当做字符串来处理 = =!
怎么说呢,算是学到了一些技巧吧,为了达到究极的短码效果,各种运算揉捏在一起,总有点邪门歪道,衣冠不整的感觉= =!
总的来说是这样的,首先尽量找出规律来,接着写代码,写完瘦身,好了以后再从规律中找更短的规律,就这么while下去,直到extremity才收手。
就比如说POJ 1000:http://poj.org/problem?id=1000【Calculate a+b】
一般看到这种题习惯地写上:
// C style #include<stdio.h> int main() { int a,b; scanf("%d %d",&a,&b); printf("%d",a+b); return 0; }
提交一下,恩,114B,蛮短的。
Run ID | User | Problem | Result | Memory | Time | Language | Code Length | Submit Time |
10381508 | shengrui | 1000 | Accepted | 164K | 0MS | C | 114B | 2012-07-05 14:02:15 |
int main(){int a,b;scanf("%d %d",&a,&b);printf("%d",a+b);}
结果如下:
Run ID | User | Problem | Result | Memory | Time | Language | Code Length | Submit Time |
10381563 | shengrui | 1000 | Accepted | 164K | 0MS | C | 58B | 2012-07-05 14:10:05 |
还能优化:
1.在GCC中,省略了全局变量的类型,就会自动视为int类型。
2.scanf("%d %d",&a,&b); 期间的“%d %d”中的空格可以省略。
3.balabala...
这里有一个奇葩的思维,就是把输入的东西当做字符串来处理 = =!
Run ID | User | Problem | Result | Memory | Time | Language | Code Length | Submit Time |
10381269 | shengrui | 1000 | Accepted | 160K | 16MS | C | 41B | 2012-07-05 13:27:58 |
main(n){gets(&n);printf("%d",n%85-43);}
相关文章推荐
- 连接oracle报错“ORA-28547:connection to server failed,probable Oracle Net admin 解决办法
- android面试题六
- ORACLE 定时执行存储过程
- 制作自定义背景Button按钮、自定义形状Button的全攻略
- STL 之栈
- opencv混合高斯模型
- STL 之栈
- Extjs表单验证小结
- emacs快捷键列表
- SVN主干分支合并
- Java多线程之Callable接口的实现
- 携程编程大赛 (预赛第二场)第一题【剪刀石头布】
- 图解CSS的padding,margin,border属性
- [数据库基础]——索引详解
- C#框架
- Nodejs安装express提示不是内部或外部命令
- 好快
- iOS-对于类是否符合条件的判断
- 用心看完,你就成熟了
- C#多线程操作界面控件的解决方案