短码之美

       看了《短码之美》一书,果真如封面所示——“编程达人的心得技法”。
怎么说呢,算是学到了一些技巧吧,为了达到究极的短码效果,各种运算揉捏在一起,总有点邪门歪道,衣冠不整的感觉= =!
       总的来说是这样的,首先尽量找出规律来,接着写代码,写完瘦身,好了以后再从规律中找更短的规律,就这么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 IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time
10381508shengrui1000Accepted164K0MSC114B2012-07-05 14:02:15

在GCC这个编译器中,是可以省略#include头文件的,另外,C99标准中的规定,main函数不写return语句时仍会返回0,所以不写return语句也没有问题。再来去掉多余的空格和换行。现在呢?
int main(){int a,b;scanf("%d %d",&a,&b);printf("%d",a+b);}

 结果如下:
Run IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time
10381563shengrui1000Accepted164K0MSC58B2012-07-05 14:10:05
少了一半。完美!
还能优化:
1.在GCC中,省略了全局变量的类型,就会自动视为int类型。
2.scanf("%d %d",&a,&b); 期间的“%d %d”中的空格可以省略。
3.balabala...
这里有一个奇葩的思维,就是把输入的东西当做字符串来处理 = =!
Run IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time
10381269shengrui1000Accepted160K16MSC41B2012-07-05 13:27:58
main(n){gets(&n);printf("%d",n%85-43);}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Synthesia 也叫作Synthesia Piano,是一款由国外开发的专业的电脑钢琴模拟软件,软件支持MIDI的导入和弹奏,为线谱提供一个弹奏的信息平台,软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,即使是不懂钢琴演奏的用户也可以使用。软件自带了上百首MID曲子,你可以把它看做为一个娱乐消遣的小游戏,也可以花心思研究一下,轻轻松松完成钢琴演奏的学习过程,真正做到简单全面实用。是用户实现钢琴演奏学习好帮手。 Synthesia 的安装 把下载好的安装包解压到当前文件夹,之后双击Synthesia-10.2-installer.exe运行文件进行安装,打开的时候会出现安装框,依次开始INtyALL,依照步骤点击下一步,并选择同意协议和软件安装位置即可。     点击close按钮,Synthesia的安装过程就完成了。 Synthesia的使用   安装完成后,点击Synthesia快捷方式即可进入Synthesia软件。如图所示,这是软件的主界面,用户可以点击打开图片按钮来实现所需功能。     如图所示,点击演奏歌曲按钮,即进入选择歌曲的页面。     如图所示,选择好歌曲后进入一个选择演奏模式的界面,用户可按自己所需选择。     如图所示,之后进入演奏界面。其他的软件操作和功能就有小伙伴们自己去发掘吧。 Synthesia的卸载   依次选择开始-> 所有程序 ->Synthesia ->卸载Synthesia。 或者依次打开我的电脑->卸载或更改程序->卸载你所卸载的软件,您可以用 Window XP控制面板中的添加或删除程序功能,或用 Windows Vista、Windows 7中的程序和功能删除Synthesia, 然后点击开始卸载,按步骤依次点击下一步,直至完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值