输入一个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.
回答的不管是好还是坏只要帮了我的大忙,就太谢谢了
展开
 我来答
烈焰蛇
2011-01-04 · TA获得超过102个赞
知道答主
回答量:32
采纳率:0%
帮助的人:19.8万
展开全部
var s:string;
l:integer;
begin
readln(s);
l:=length(s);
writeln(l);
end.
306484019
2011-01-04
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
完全可以,但没必要这么麻烦,而且复杂度也大,浪费时间。
可以巧妙运用ln函数,
读入数就可以了;
n:integer;
readeln(n);
数的位数(n);
n:=trunc(ln(n)/ln(10))+1;
trunc取整函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
870725697
2011-01-05 · 超过13用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:41.1万
展开全部
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);

参考资料: da nao

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-01-04
展开全部
可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Frankqzh
2011-01-08 · TA获得超过275个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:245万
展开全部
如果数更大的话就用这个
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)位数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式