pascal(高分解答)

来源:百度知道 编辑:UC知道 时间:2024/06/18 01:52:39
1.给出一个自然数N(1<=N<=15,且N为奇数),要求找出这样的N个连续的正整数,使得前(N+1)/2个正整数的平方和,等于后(N-1)/2个正整数的平方和。(20%)
例如:当N=5时
满足条件的5个正整数为:10,11,12,13,14
且102+112+122=132+142
输入:N
输出:满足条件的N个正整数

2.给出二个任意的正整数N,K(1<=N<=10000,0<=K<N),然后进行如下操作:(30%)
(1)从N中连续减去2R(R=0,1,2,3,...)
(2)当剩余的数不够减时,则将其加上K,再重复(1)的操作过程。
(3)若剩余的数为0时,则结束操作并输出进行减法的次数。
(4)若存在永远不能减完的情况,则输出信息“ERROR!”。
例如:当N=4,K=2时,操作过程如下:
1)4-1=3 减20
2)3-2=1 减21
由于不够减,所以加K的值2,得:N=1+2=3
3)3-1=2 减20
4)2-2=0 减21
此时结果为0,则输出:STEP=4(表示进行了4次减法操作运算)
又如:当N=2,K=1时,操作过程如下:
1)2-1=1 减20
由于不够下次减,所以加K的值1,得:N=1+1=2
2)2-1=1 减20
…………
在这种情况下,永远不能减完,则输出信息“ERROR!”

有没有编好的程序发过来
我要程序

102+112+122=132+142 ?楼主输错了?

1
var i,n:longint;
function fin;
var j,s1,s2:longint;
begin
s1:=0;s2:=0;
for j:=1 to (n+1) div 2 do s1:=s1+(i+j-1)*(i+j-1);
for j:=(n+1) div 2 to n-1 do s2:=s2+(i+j)*(i+j);
if s1=s2 then
begin
for j:=1 to n do write(i+j-1);
fin:=true;
end
else
fin:=false;
end;
begin
read(n);
while not fin do inc(i);
end.

做一道题意思下,第二题懒得做了。。。。。

不难,提示
用循环,
和Case语句