【程序设计】PASCAL语言实现设有一个数列a1,a2,a3,…,a(n),其中a1,a2由键盘输入,从a3开始,通过下列四种情况的公式计算:a(n-2) a(n-1) a(n)偶数 奇数 2a(n-2)+a(n-1)

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 17:15:20
【程序设计】PASCAL语言实现设有一个数列a1,a2,a3,…,a(n),其中a1,a2由键盘输入,从a3开始,通过下列四种情况的公式计算:a(n-2)   a(n-1)     a(n)偶数       奇数        2a(n-2)+a(n-1)

【程序设计】PASCAL语言实现设有一个数列a1,a2,a3,…,a(n),其中a1,a2由键盘输入,从a3开始,通过下列四种情况的公式计算:a(n-2) a(n-1) a(n)偶数 奇数 2a(n-2)+a(n-1)
【程序设计】PASCAL语言实现
设有一个数列a1,a2,a3,…,a(n),其中a1,a2由键盘输入,从a3开始,通过下列四种情况的公式计算:
a(n-2) a(n-1) a(n)
偶数 奇数 2a(n-2)+a(n-1)
奇数 偶数 a(n-2)+2a(n-1)
偶数 偶数 a(n-2)+a(n-1)+1
奇数 奇数 a(n-2)+a(n-1)
例如,a1=1,a2=2,则:
a3=1+2*2=5
a4=4+5=9
a5=5+9=14
任务:对于输入的a1,a2和n(n

【程序设计】PASCAL语言实现设有一个数列a1,a2,a3,…,a(n),其中a1,a2由键盘输入,从a3开始,通过下列四种情况的公式计算:a(n-2) a(n-1) a(n)偶数 奇数 2a(n-2)+a(n-1)
用递推做的:
var
n,i:byte;
a:array[1..100] of word;
procedure fill_a(i:byte);
begin
if (odd(a[i-2])and(odd(a[i-1])) then a[i]:=a[i-1]+a[i-2];
if (odd(a[i-2])and(not(odd(a[i-1))) then a[i]:=a[i-2]+2*a[i-1];
if (odd(a[i-1])and(not(odd(a[i-2))) then a[i]:=a[i-1]+2*a[i-2];
if not((odd(a[i-2])and(odd(a[i-1]))) then a[i]:=a[i-1]+a[i-2]+1;
end;
begin
readln(a[1],a[2]);
readln(n);
for i:=3 to n do fill_a(i);
write('a',n,'=',a[n]);
end.