回 帖 发 新 帖 刷新版面

主题:如何判断一个整形是多少位数?

请问如何判断一个整形是多少位数?

回复列表 (共15个回复)

沙发

[lgn]+1

板凳

这里提供两个办法,以下 integer 是要求长度的那个整数

1. log 法

Code in C/C++:
length = (int)log(integer) + 1;
Code in Pascal:
length := trunc(log(_integer)) + 1;

2. while 法

Code in C/C++:
length = 0;
while (integer > 0)
{
   length++;
   integer /= 10;
}
Code in Pascal:
length := 0;
while integer > 0 do begin
   length := length + 1;
   _integer := trunc(_integer / 10);
end;

这样 length 就是这个整数的长度。

3 楼

不瞒楼上的说,我还真不知道pascal里有log函数……呵呵
您那个程序可能通过运行吗?ms在pascal中只有用ln换底

4 楼

你可以自己写一个么……没有关系……的确没有,我对 Pascal 不熟悉这里就是一个例子

5 楼

^_^
楼上的本来就只是一句,即使用换底也不能运行的。

另外,我想到了当年(也就去年)我拿N个语言写同一个简单程序(heap+dijkstra)……
终于发现那是很累的……完成C++,pascal,basic版的后,我决定不再这样……
在acm以前我打算一直用我的pascal了……

6 楼

为什么二楼的在LINUX下用LOG通不过呢,请问log包括在哪个头文件中?log(interger)+1;

7 楼

ACM?现在距离我太遥远了,能问一下你是哪所高校的吗?

8 楼

我……高一……

9 楼

用LEN(123)测定结果:3

10 楼

将整数转成字符串型,然后再LEN

我来回复

您尚未登录,请登录后再回复。点此登录或注册