Pascal数组题。

来源:百度知道 编辑:UC知道 时间:2024/09/20 03:55:39
1 输入n个整数的数列,请找出数列中最小数所在的位置(有多少个最小数,则选最左边的哪个最小数),把它与数列的第一个数对调,其他数的位置不动,输出此数列。
2 有52张扑克牌,使它们全部正面朝上。从第二张牌开始,把凡是2的倍数位置上的牌翻成正面朝下;接着从第3张牌开始,把凡是3的倍数位置上的牌正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;接着从第4张牌开始,把凡是4的倍数位置上的牌按此规律翻转;依此类推,直到第一张要翻的牌是第52张为止。统计最后有几张牌正面朝上,并打出它们的位置。
(请大大们在7月23日晚上之前答出来,一定要有2题的解题思路。拜托了。。小弟我没什么分,只能对你们诚挚的感谢,谢谢了。)

var
a:array[1..10000]of longint;
n,min,i,j,tmp:longint;
begin
readln(n);
for i:=1 to n do readln(a[i]);
min:=maxlongint;
j:=0;
for i:=1 to n do
if a[i]<min then begin
min:=a[i];//因为后面a[i]=max的都不需进行此步,所以可以保证数是最左的最小数
j:=i;
end;
tmp:=a[j];
a[j]:=a[1];
a[1]:=tmp;
for i:=1 to n do begin
if i>1 then write(' ');
write(a[i]);
end;
writeln;
end.

第二题比较地繁琐,我就不打出程序了。
这里告诉你主要思路吧:
因为只有52张扑克牌,所以直接穷举时间复杂度是n^2,是不会超时的。所以每次穷举,把这一轮要翻的牌翻过来,然后如果第一张翻的是第52张就可以退出循环,输出牌的状况

Pascal数组题,谁来解答!! 用数组做pascal排序题 pascal数组出错问题 PASCAL 用数组排序 PASCAL数组排序问题 pascal 常量二维数组 二维数组 PASCAL教程 pascal数组问题 2道和数组有关的题(PASCAL) Pascal数组元素编程题!!!高手来!!!再线等!!!!