一道pascal题目

2024-12-25 22:21:49
推荐回答(2个)
回答1:

对于你的最后一个问题~在所有数中,总共有多少个数相同?有异议~
比如 1 1 1 2 2 这类数,到底回答有3个数相同呢?还是2个数相同?还是总共5个?这点是表达不清哈
所以呢~在你题目最后一问不确切的情况下 我只考虑存在1 1 1 2 3这类情况~~~(当然要考虑1 1 1 1 2 2 2 3 3 3)这类情况,等你把题表达清楚了~自己改改就行了~
代码如下~
program records;
var b:set of 1..255;//集合定义
n,x,i,s,d:integer;//n为总数,x为读入变量,s为求和,d为记录相同的个数
begin
readln(n);
i:=0;s:=0;b:=[];d:=1;//初始化,d为1,因为自身是和自身相同的~
while i begin
i:=i+1;
read(x);
if not(x in b) then b:=b+[x]//不在集合中,加入
else d:=d+1;//否则记录+1
s:=s+x;//求和
writeln('Line',i,':',s:3);//输出
end;
writeln('Totally same numbers');
write(d);
end.
PS:我开始已经说了哦~由于你的问题不是很清楚,导致无法给出一个确切的程序
上述代码只处理2 1 3 1 1 1等这类的~不处理1 1 1 2 2 2 3 3 3 3 4 4 4 4等等这类的
因为集合处理与顺序无关,所以你要从右边开始,只需要把数据倒着输入就行了~如果你硬要顺序输入,那么自己定义一个数组,把它们倒序排列~(效果一样哦)
时间复杂为n
望采纳~谢谢

回答2: