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.