回 帖 发 新 帖 刷新版面

主题:向各位请教两道题

刚在书上看了while的循环语句和二维数组,但下面这两道题不知道怎么做:
1、求一个大于0且小于2147483646的整数的各位数字之和。(要求运用while)如:输入162756则输出1+6+2+7+5+6=27

2、求一个n*n数阵中的马鞍数,如果找到就输出它的位置,否则输出'Not Found!'。
如输入
56789
45678
34521
23490
12548
输出:1   1 (表示答案在1行1列)

回复列表 (共5个回复)

沙发

1,用mod和div运算
2,说清楚什么叫马鞍数

板凳

1、angwuy对第一题的解释我看不大明白。
2、马鞍数就是指在行上最小而列上最大的数。

3 楼

1
readln(n);
t:=0;
while n>0 do
begin
inc(t,n mod 10);
n:=n div 10;
end;

2
直接枚举

4 楼

对不起,第一题的程序段中的语句我能看懂,但是没弄明白为什么要这样做。
第二题我做不到,因为我还没接触到枚举。
很感谢angwuy的热心,只是我在自学的过程中很多问题弄不明白,还希望angwuy不要介意我的愚笨。
:-)

5 楼

1
开个变量跟踪窗口跟踪一下就会明白的

2
开两个数组
一个是记录每行上最小最大的数
另一个是记录每列上最大的数
最后进行比较,得出结果

我来回复

您尚未登录,请登录后再回复。点此登录或注册