编程题(用Pascal)

来源:百度知道 编辑:UC知道 时间:2024/06/25 18:05:42
(1)给一串整数数列,求出所有的递增和递减子序列的数目.如数列7,2,6,9,8,3,5,2,1可分为(7,2),(2,6,9),(9,8,3),(3,5),(5,2,1)五个子序列,答案就是5.我们成2,9,5,3为转折元素.
(2)将一个十进制整数转化为二进制数.
第一题用数组元素的排序
最好用冒泡法

(1) 是给定个数么?
program num;
var n,i:integer;
a:array[1..100000]of integer;
begin
readln(n);
for i:=1 to n do readln(a[i]);
num:=1;
for i:=2 to n-1 do
if (a[i]-a[i-1])*(a[i]-a[i+1])>0
then num:=num+1;
writeln(num);
end.

(2)
program change;
var n:integer;
procedure outn(n:integer);
begin
if outn=1 then write(1)
else begin
outn(n div 2);
write(n mod 2);
end;
end;
begin
readln(n);
outn(n);
end;