PASCAL语句

来源:百度知道 编辑:UC知道 时间:2024/06/12 06:07:35
合下面条件的5个正整数:
(1)5个数之和为23;
(2)从这5个数中选取不同的数作加法,可得1-23中的所有自然数,打印这5个数及选取数组成的1--23的加法式。

我写的程序var w,e,r,t,n,q,a,b,c,d,f,g,l:integer;
begin
q:=1;
write('1=1');
for w:=1 to 23 do
for e:=1 to 23 do
for r:=1 to 23 do
for t:=1 to 23 do
begin
if (q+w+e+r+t)=23 then
for n:=1 to 23 do
begin
if n=q then begin if n=23 then begin writeln(q:5,w:5,e:5,r:5,t:5); continue; end;end;
…………

帮我写一个程序,
或者看看我程序的错误在哪
我的思路是 :
首先:肯定有一个数是1
然后4个循环

5个数和为23的条件下begin
n从1到23循环
当n= 5个数中其中1个2个3个4个5个数的和时候
:1。继续循环 2。判断n是否为23,是的话打印5个数

如果n都不能用5个数任意和表示,则break

注意:不能直接输出这个
procedure j;
var a,b,c,d,e;
begin
for i:=1 to n do begin
for e:=1 to i do begin
a:=i;
b:=i+1;
c:=i+2;
e:=i+3;
d:=i+4;
end;
end;
end;

这5个数中一定有1,2,3,原因和一定有1内似。这样就只需要确定另外两个数了,而且这两个数一大一小,和为17。这来两个数应该满足这样的条件:(1)这两个数中的小数应该小于8,否则就没有7了;(2)这个小数加上6应该不小于那个大数减一,否则就没有比大数小1的那个数了。这样一来范围就很小了。