我在SPOJ –
http://www.spoj.com/problems/ALICESIE/上解决了这个问题
问题归结为打印(n 1)/ 2
这是我的C代码,传递0.03秒
#include <stdio.h> int main() { int test,n; scanf("%d",&test); while(test--) { scanf("%d",&n); printf("%d\n",(n + 1) >> 1); } return 0; }
这是我的BASH代码,它超出了时间限制(即> 1s)
read test while (( test-- )) do read n echo "$(((n+1)/2))" done
任何人都可以让我知道为什么会这样吗? BASH很慢吗?
谢谢.
Bash在执行数字运算时很慢.但这不是Bash的设计目标.
Bash非常快速地编写脚本以自动执行一些重复操作.修改错误的Bash脚本并再次运行它很快.快速找出Bash脚本究竟在做什么(而不是必须寻找你正在查看的C可执行文件的源代码).
而这样的例子不胜枚举.
C和Bash是两种截然不同的语言和环境.如果你抱怨Bash很慢,你就是用它来解决错误的问题.
“不要抱怨螺丝刀在将钉子钉入墙壁时很糟糕.”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。