Cho trước các số N, a, b, c là các số nguyên dương. Giải phương trình: x + y + z = N với điều kiện x <a , y <b , z <c . lm bằng chương trình chính ko lm Ct con nha (pascal)

2 câu trả lời

program bai_giai;
uses crt;
var n,a,b,c,x,y,z:longint;
begin
    clrscr;
    readln(n,a,b,c);
    if (a+b+c-3)<n then write('Khong co')
    else
        for x:=1 to a-1 do
            for y:=1 to b-1 do
                begin
                    z:=n-x-y;
                    if z<c then writeln(n,' = ',x,' + ',y,' + ',z);
                end;
    readln;
end.

`+`(a+b+c-3)<n thì viết không có bởi vì bé hơn thì a-1+b-1+c-1<n tương đương với a+b+c-3<n

`+`Cho x chạy từ 1 đến a-1 để x<a, y chạy vòng lồng từ 1 đến b-1 cũng để y<b, ta không cần chạy thêm vòng z vì sẽ mất thời gian, để tổng bằng N thì chỉ việc trừ ra là ta được z. Sau đó kiểm tra z<c có thỏa mãn hay không rồi viết ra kết quả.

uses crt;

var a,b,c,n,x,y,z:longint;

begin

  read(n,a,b,c);

  if (a+b+c<n+3) then write('vo nghiem');

  for x:=1 to a-1 do

  for y:=1 to b-1 do

   if (n-x-y<c) then   

       begin

            z:=n-x-y;

            writeln(x,'+',y,'+',z,'=',n);

       end;

readln

end.