pascal语言:输入一个正整数,计算它各数位之和
(数字数位不限,类型为longint)
pascal语言:输入一个正整数,计算它各数位之和
答案:1 悬赏:50 手机版
解决时间 2021-08-19 22:41
- 提问者网友:我的未来我做主
- 2021-08-18 23:13
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-08-19 00:12
这个其实可以用多种方法实现
方法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 。谢谢采纳!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯