var s:string;
l:integer;
begin
readln(s);
l:=length(s);
writeln(l);
end.
完全可以,但没必要这么麻烦,而且复杂度也大,浪费时间。
可以巧妙运用ln函数,
读入数就可以了;
n:integer;
readeln(n);
数的位数(n);
n:=trunc(ln(n)/ln(10))+1;
trunc取整函数。
var
a:string;
n:integer;
repeat
writeln('input a number <=10000.');
readln(n);
until n<=10000;
str(n,a);
writeln(lenth(a));
或
var
n,i:integer;
begin
repeat
writeln('input a number>=0 and <=10000.');
readln(n);
until (n>=0)and(n<=10000);
for i:=0 to n do if n div i=0 then halt;
writeln(i);
可以
如果数更大的话就用这个
var
i:qword;
c:char;
begin
i:=0;
repeat
read(c);
until (c>'0')and(c<='9');
repeat
read(c);
inc(i);
until (c<'0')or(c>'9');
write(i);
end.
最多到(2^64-1)位数