输入一个10000以内的数,输出位数(用Pascal来编程)
用最简单的方法(最好不用函数,函数我不太懂,如果有那位热心人,教教我函数吧!)你看这个行不行?Programpa;vara:integer;beginreadln(a);...
用最简单的方法(最好不用函数,函数我不太懂,如果有那位热心人,教教我函数吧!)
你看这个行不行?
Program pa;
var
a:integer;
begin
readln(a);
if a<10000 and a>=1000 then writeln('4')
if a<10000 and a>=100 then writeln('3')
if a<10000 and a>=10 then writeln('2')
if a<10000 and a>=0 then writeln('1')
else writeln('0');
end.
回答的不管是好还是坏只要帮了我的大忙,就太谢谢了 展开
你看这个行不行?
Program pa;
var
a:integer;
begin
readln(a);
if a<10000 and a>=1000 then writeln('4')
if a<10000 and a>=100 then writeln('3')
if a<10000 and a>=10 then writeln('2')
if a<10000 and a>=0 then writeln('1')
else writeln('0');
end.
回答的不管是好还是坏只要帮了我的大忙,就太谢谢了 展开
5个回答
展开全部
完全可以,但没必要这么麻烦,而且复杂度也大,浪费时间。
可以巧妙运用ln函数,
读入数就可以了;
n:integer;
readeln(n);
数的位数(n);
n:=trunc(ln(n)/ln(10))+1;
trunc取整函数。
可以巧妙运用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);
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);
参考资料: da nao
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-01-04
展开全部
可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果数更大的话就用这个
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)位数
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)位数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询