pascal奇怪数列编程输入3个整数n,p,q,寻找一个由整数组成的数列(a1,a2,……,an),要求:其中任意连续p项之和为正数,任意连续q项之和为负数.0

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 16:15:28
pascal奇怪数列编程输入3个整数n,p,q,寻找一个由整数组成的数列(a1,a2,……,an),要求:其中任意连续p项之和为正数,任意连续q项之和为负数.0

pascal奇怪数列编程输入3个整数n,p,q,寻找一个由整数组成的数列(a1,a2,……,an),要求:其中任意连续p项之和为正数,任意连续q项之和为负数.0
pascal奇怪数列
编程输入3个整数n,p,q,寻找一个由整数组成的数列(a1,a2,……,an),要求:其中任意连续p项之和为正数,任意连续q项之和为负数.0

pascal奇怪数列编程输入3个整数n,p,q,寻找一个由整数组成的数列(a1,a2,……,an),要求:其中任意连续p项之和为正数,任意连续q项之和为负数.0
设a[0](等于0)到a[i]的部分和为s[i],则只要求出s[0],s[1],…,s[n]之间的关系即可.而他们之间的关系可以用有向图表示,且在有向图中连成环的即为无解.对于a[i]至a[j]的和的表示方法,可以表示为s[j]-s[i-1].
求n=6,p=3,q=5时的数列.
设这六个数和a[0]为:
a[0] a[1] a[2] a[3] a[4] a[5] a[6]
部分和为:
s[0] s[1] s[2] s[3] s[4] s[5] s[6]
则可以得出:
s[3]-s[0]>0,s[4]-s[1]>0,s[5]-s[2]>0,s[6]-s[3]>0,s[5]-s[0]s[1],s[5]>s[2],s[6]>s[3],s[0]>s[5],s[1]>s[6]
由此可知,这个数列有解,且s数组的大小顺序为:
s[4]>s[1]>s[6]>s[3]>s[0]>s[5]>s[2]
又因为已知s[0]=0,所以将其余数依次加/减1,得:
s[4]=4,s[1]=3,s[6]=2,s[3]=1,s[0]=0,s[5]=-1,s[2]=-2
即s数组依次为:
0,3,-2,1,4,-1,2
由此可知a数组依次为:
3,-5,3,3,-5,3
我的代码太丑了,这个是sqybi在N年前写过的程序..
Program n_p_q;
Const
m = 10;
Var
s,n,p,q,i,k,L:Integer;
G:Array[0..m,0..m]Of 0..1;
t:Array[0..m]Of Record
i,o:Integer;
f:Boolean;
End;
a,r,rr,tt:Array[0..m]Of Integer;
Begin
WriteLn('请输入n,p,q的值:');
ReadLn(n,p,q);
FillChar(G,SizeOf(G),0);
For i:=0 To n Do t[i].f := True;
For i:=0 To n-p Do Begin
G[i+p,i] := 1;
Inc(t[i+p].o);
Inc(t[i].i);
End;
For i:=0 To n-q Do Begin
G[i,i+q] := 1;
Inc(t[i].o);
Inc(t[i+q].i);
End;
L := 1;
While L

pascal奇怪数列编程输入3个整数n,p,q,寻找一个由整数组成的数列(a1,a2,……,an),要求:其中任意连续p项之和为正数,任意连续q项之和为负数.0 pascal编程给出一个n,求前n个奇数的总和 输入 一行,一个整数n 输出 一行,表示总和 pascal程序设计 输入一个整数n,n C语言交换元素编程输入n个整数(2 pascal编程:哥德巴赫猜想题目描述输入N(N pascal编程求1+2+3+..+n的值求1+2+3+..+n的值 输入 一个整数n 输出 一个整数,表示1~n这n个数的总和 VB编程,输入n个整数,求它们的最大公约数.注意:是n个整数 pascal 编程输入下列图案 读入N个数,打印其中的最大数及其位置号用Pascal编程还有个题目给定一串整数数列,求出所有的递增和递减子序列的数目,如数列7,2,6,9,8,3,5,2,1可分为(7,2),(2,6,9),(9,8,3,),(3,5),(5,2,1)5 Free pascal 求连续数字的平方和Description 编程求1平方+2平方+...+n平方 Input 输入一行,只有一个整数n(1 pascal编程 输入n个整数,找出最大数所在的位置,并将它与第一个数对调输入n个整数,找出最大数所在的位置,并将它与第一个数对调注意是用一位数组编的 编程题,输入n个整数,求这n个整数的最大数,最小数,和偶数平均数, pascal 裴波那契数列1.裴波那契数列:数列1、1、2、3、5、8、13、21…称为裴波那契数列,它的特点是:数列的第一项是1,第二项也是1,从第三项起,每项等于前两项之和.编程输入一个正整数N,求出 pascal 输入n(1 pascal 输入n(1 输入n个整数,请找出最小数所在的位置,并把它与第一个数对调.(pascal 数组) 输入N个整数,请找出最小数所在的位置,并把它与第一个对调pascal 输入一个正整数n,将n分解成质因数幂的乘积形式.编程turbo pascal...