program PascalTest;{$APPTYPE CONSOLE}uses
SysUtils ,Windows;
function fib(const n:integer):integer;
begin
if (n <= 2) then
result :=1
else
result := fib(n-1) + fib(n-2);
end;
var n:integer;
bt, et :cardinal;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
if paramcount<1 then
begin
Writeln('usage: fib n'+Char(13));
Writeln('Compute nth Fibonacci number'+Char(13));
end
else
begin
n :=StrToInt(paramstr(1));
bt :=GetTickCount;
Writeln(format('fib(%d) = %d'+Char(13),[n,fib(n)]));
et :=GetTickCount;
Writeln('time last:'+IntToStr(et-bt)+'ms');
end; except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.用delphi XE :)编译,得到release版本,大小84K。
PascalTest 45
fib(45) = 1134903170
time last:24375ms
===========================================================================================================
#include <stdio.h>
#include <windows.h>int fib(n)
{
if (n <= 2)
return 1;
else
return fib(n-1) + fib(n-2);
}int main(int argc, char **argv)
{
int n,et,bt;
if (argc < 2) {
printf("usage: fib n\n" "Compute nth Fibonacci number\n"); return 1;
}
bt=GetTickCount();
n = atoi(argv[1]);
printf("fib(%d) = %d\n", n, fib(n));
et=GetTickCount();
printf("time last:%dms",et-bt);
return 0;
}用code::blocks 编译,得到release版本,大小5.5K。
ctest 45
fib(45) = 1134903170
time last:24375ms
====================================================================================
pascal本来就是个超级低级语言嘛。
C代码没用vc编译。
解决方案 »
- 简单问题抢分了,在线等答案
- 同样的代码,D5和D10 效果不一样?!-----------------------------------------------------没分数了;
- 请问,如何关闭用.panent模式建立的并装到一个panel1中的窗体?
- 【★】请CSDN朋友支持个人网站,支持2007长春冬奥会【★】
- 能否提供一些关于用CREATE TABLE #表名创建临时表的资料?谢谢
- 来学习DELPHI,请推荐例子下载网站。
- 如何正确使用messagebox函数?
- 问:对于将系统时间设置为:'yyyy'年'mm'月‘dd’日是用什么函数;
- 个位大哥,那有RQDesign这组控件ForD5/D6
- 如何让执行SQL语句时的光标消失?
- 就 tif文件 转 jpg文件 的方式??
- 请教数据库方面的管理操作
哪个有条件帮我测试一下是不是这样?reg740.txt license是我一直保留的,turbo是我前两天从 turbomirror down的。
但是我要说,现在的Delphi编译器优化上被最新的VC编译器甩得有点远了.
查看两个编译器都开优化的编译结果,循环展开,分支处理这些点大部分都是VC胜出.Delphi只在少数几个点胜出.就CodeGear那几个人,下个版本Delphi我也不指望能在编译器优化上有什么改进,主要是64位编译器和跨平台能搞定我就谢天谢地了.
2. 当你开发大型项目时,一个EXE上M是不可避免的,所以C编出这么小的程序说明不了什么问题。另外你要清楚:C根本是一个超级低级语言,你连概念都没有搞清楚。
我测试这个的意思并没有贬低或者夸大任何语言和编译器。
只是我在大数据量计算的时候,本来想用C开发,后来大概测试了一下,差不多就没用。
我本意是pascal不参与OO的时候,只参与数值运算的时候基本和C效率一样的。
还以为又是骂Delphi的贴子。都原生语言,普通的数值运算效率是同一级别的,浮点数可能比不上C的优化。