Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.218.29.176] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте!!! Помогите пожалуйста найти все натуральные решение ЛДУ
я написал код, но у меня выводит не все натуральные решения из отрезка, а иногда даже выскакивают целые числа, что неправильно Скрытый текст var a, a1, b, b1, c, c1, d, x, y, x1, y1, x2, y2, q, r,i,k: Longint; t1,t2:integer; begin write('Введите число А : ');readln(a); a1 := a; write('Введите число В : ');readln(b); b1 := b; write('Введите число С : ');readln(c); c1 := c; writeln(a,'*x + ',b,'*y = ',c); if b = 0 then begin d := a; x := 1; y := 0 end else begin x1 := 0; x2 := 1; y1 := 1; y2 := 0; while b > 0 do begin q := a div b; r := a - q * b; x := x2 - q * x1; y := y2 - q * y1; a := b; b := r; x2 := x1; x1 := x; y2 := y1; y1 := y end; d := a; x := x2; y := y2 end; t1:=Trunc((x*c)/b1); t2:=Trunc((-y*c)/a1); writeln('t = [ ',t2,', ',t1,' ] '); writeln('(x, y) = (', x,'*',c,' - ',b1, ' * t, ', y,'*',c,' + ',a1, ' * t ) = (', x*c,' - ',b1, ' * t, ', y*c,' + ',a1, ' * t )'); k:=t1-t2; for i:=1 to k do writeln('(x, y) = (',x*c-b1*(t2+i),', ',y*c+a1*(t2+i),')'); end. |
Сообщ.
#2
,
|
|
|
Вообще натуральные числа - подмножество целых, поэтому противопоставление их странно выглядит.
Что делает Trunc в целочисленном алгоритме? Посмотрите, что делается тут: http://e-maxx.ru/algo/diofant_2_equation |