作业帮 > 综合 > 作业

pascal语言:输入一个正整数,计算它各数位之和

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/15 06:33:24
pascal语言:输入一个正整数,计算它各数位之和
(数字数位不限,类型为longint)
pascal语言:输入一个正整数,计算它各数位之和
这个其实可以用多种方法实现
方法1:分离数字法
var
x,l,s:longint;
begin
read(x);
while x>0 do
begin
l:=x mod 10;
inc (s,l);
x:=x div 10;//当前位完成计数后,去掉
end;
write(s);
end.
方法2:转字符串法
var
s:string;
x,ans:longint;
begin
read(x);
str(x,s);
for i:=1 to length(s) do
inc (ans ,ord(s[i])-48 ); //即进行字符与数字之间的转换
write(ans);
end.
个人认为第二种方法较好!
再问: 帮我改一下这个程序:
var
a,n,s,d:longint;
begin
read(a);
s:=0;
while n>0 do
begin
d:=a mod 10;
s:=s+d;
n:=a div 10;
s:=s+n;
end;
writeln(s);
end.
就是这个题目。
再答: var
a,n,s,d:longint;
begin
read(a);
s:=0;
while a>0 do// 改为a
begin
d:=a mod 10;
s:=s+d;
a:=a div 10;
//n:=a div 10;
//s:=s+n; 这2个语句不用加
//说明一下,变量n其实在这里并不需要,只要实现数字的自身分离就好了
end;
writeln(s);
end.
另外抱歉一下,昨天我的第二个程序没有定义循环变量i 。谢谢采纳!