在pascal语言中如何计算一个数的位数?

来源:百度知道 编辑:UC知道 时间:2024/09/26 04:30:46

Var I:Integer;
S:String;

Begin
ReadLn(S);
i:=1;
While (S[i]='0')And(I<Length(S)) Do Inc(i);
WriteLn(Length(s)-i+1);
End.

两种方法:
1、把数变成字符串(只对整形数有效)
var
a:longint;
l:integer;
s:string;
begin
readln(a);{读入数字}
str(a,s);{把数字转换成字符串}
l:=length(s);{取字符串长度}
writeln(l);
end.

2、用REPEAT或WHILE循环(虽然REAL可以接受实形数,但是小数部分会被忽略)
REPEAT循环法:
var
a:real;
b:integer;
begin
readln(a);
repeat
a:=a/10;
b:=b+1;
until trunc(a)=0;
writeln(b);
end.

WHILE循环法:
var
a:=real;
b:=integer;
begin
readln(a);
while trunc(a)<>0 do
begin
a:=a/10;
b:=b+1;
end;
writeln(b);
end.

var
i,j,k:integer;
begin
readln(i);
j:=0;
repeat
j:=j+1;
i:=i div 10;
until i=0;
writeln(j,'WEI SHU');

end.

mo