Другие языки программирования и технологии
Найти трехзначные числа a, b, c, все цифры которых различны и удовлетворяют уравнению a^2 – b^2 – c^2 = a – b – c.
Составить программу в Pascal или написать просто ответы
uses crt;
var a,b,c:longint;
begin
for a:= 100 to 999 do
for b:= 100 to 999 do
for c:= 100 to 999 do
if (a*a-b*b-c*c=a-b-c) and
((a mod 10)<>(a div 100))and
((a mod 10)<> ((a mod 100)div 10))and ((a div 100)<> ((a mod 100) div 10))and
((b mod 10)<>(b div 100))and
((b mod 10)<> ((b mod 100)div 10))and ((b div 100)<> ((b mod 100) div 10))and
((c mod 10)<>(c div 100))and
((c mod 10)<> ((c mod 100)div 10))and ((c div 100)<> ((c mod 100) div 10)) then
writeln(a,' ' ,b, ' ',c);
end.
В паскале он не выводит все числа, так что, чтобы проверить, что программа работает, надо сократить до 300 цикл, иначе программа ничего не выводит
var a,b,c:longint;
begin
for a:= 100 to 999 do
for b:= 100 to 999 do
for c:= 100 to 999 do
if (a*a-b*b-c*c=a-b-c) and
((a mod 10)<>(a div 100))and
((a mod 10)<> ((a mod 100)div 10))and ((a div 100)<> ((a mod 100) div 10))and
((b mod 10)<>(b div 100))and
((b mod 10)<> ((b mod 100)div 10))and ((b div 100)<> ((b mod 100) div 10))and
((c mod 10)<>(c div 100))and
((c mod 10)<> ((c mod 100)div 10))and ((c div 100)<> ((c mod 100) div 10)) then
writeln(a,' ' ,b, ' ',c);
end.
В паскале он не выводит все числа, так что, чтобы проверить, что программа работает, надо сократить до 300 цикл, иначе программа ничего не выводит
Otabek Suleimenov
Выводит!! Только надо много времени ждать. Согласен, что надо уменьшить цикл для проверки программы
976, 967, 764, 746.
UPD: А не, отбой, чота я утром плохо думаю, вот с числами:
http://prntscr.com/64ha8q
UPD: А не, отбой, чота я утром плохо думаю, вот с числами:
http://prntscr.com/64ha8q
Владимир Бондаренко
Насколько я понял, то нужно выдать тройки чисел?
Otabek Suleimenov
Разве a,b,c - это цифры?
Может a,b,c - это числа (по усл.)
Может a,b,c - это числа (по усл.)
Alex Fresh
у чисел должны быть различные цифры.
что-то типа 123 456 789
что-то типа 123 456 789
Alex Fresh
не слабая задачка)
var a100,a10,a1,b100,b10,b1,c100,c10,c1: integer;
begin
for a100:=1 to 9 do
for a10:=0 to 9 do
for a1:=0 to 9 do
for b100:=1 to 9 do
for b10:=0 to 9 do
for b1:=0 to 9 do
for c100:=1 to 9 do
for c10:=0 to 9 do
for c1:=0 to 9 do begin
if (a100<>a10) and (a100<>a1) and (a10<>a1) then begin
if (b100<>b10) and (b100<>b1) and (b10<>b1) then begin
if (c100<>c10) and (c100<>c1) and (c10<>c1) then begin
if sqr(a100*100+a10*10+a1)-sqr(b100*100+b10*10+b1)-sqr(c100*100+c10*10+c1)=a100*100+a10*10+a1-b100*100-b10*10-b1-c100*100-c10*10-c1 then begin
write(a100,a10,a1,' ');
write(b100,b10,b1,' ');
write(c100,c10,c1,' ');
write(sqr(a100*100+a10*10+a1)-sqr(b100*100+b10*10+b1)-sqr(c100*100+c10*10+c1),' ');
writeln(a100*100+a10*10+a1-b100*100-b10*10-b1-c100*100-c10*10-c1);
end;
end;
end;
end;
end;
end.
там их дофига
169 102 135
169 135 102
172 103 138
172 138 103
174 105 139
174 139 105
179 108 143
179 143 108
182 109 146....
begin
for a100:=1 to 9 do
for a10:=0 to 9 do
for a1:=0 to 9 do
for b100:=1 to 9 do
for b10:=0 to 9 do
for b1:=0 to 9 do
for c100:=1 to 9 do
for c10:=0 to 9 do
for c1:=0 to 9 do begin
if (a100<>a10) and (a100<>a1) and (a10<>a1) then begin
if (b100<>b10) and (b100<>b1) and (b10<>b1) then begin
if (c100<>c10) and (c100<>c1) and (c10<>c1) then begin
if sqr(a100*100+a10*10+a1)-sqr(b100*100+b10*10+b1)-sqr(c100*100+c10*10+c1)=a100*100+a10*10+a1-b100*100-b10*10-b1-c100*100-c10*10-c1 then begin
write(a100,a10,a1,' ');
write(b100,b10,b1,' ');
write(c100,c10,c1,' ');
write(sqr(a100*100+a10*10+a1)-sqr(b100*100+b10*10+b1)-sqr(c100*100+c10*10+c1),' ');
writeln(a100*100+a10*10+a1-b100*100-b10*10-b1-c100*100-c10*10-c1);
end;
end;
end;
end;
end;
end.
там их дофига
169 102 135
169 135 102
172 103 138
172 138 103
174 105 139
174 139 105
179 108 143
179 143 108
182 109 146....
Dobrinn6877
Неверные у тебя числа
Проверь на калькуляторе сначала
Проверь на калькуляторе сначала
-----------------
309 186 247
309 247 186
627 319 540
627 540 319
719 234 680
719 680 234
839 504 671
839 671 504
952 630 714
952 714 630
-----------------
Паскаля у меня нет, вот на прожка на VBA Excel, можно несложно переделать в pas:
Sub abc()
Dim a, b, c As Long
Dim a1, a2, a3, b1, b2, b3, c1, c2, c3 As Long
Dim ResStr As String
For a1 = 1 To 9
For a2 = 0 To 9
If a2 <> a1 Then
For a3 = 0 To 9
If a3 <> a1 And a3 <> a2 Then
For b1 = 1 To 9
If b1 <> a1 And b1 <> a2 And b1 <> a3 Then
For b2 = 0 To 9
If b2 <> a1 And b2 <> a2 And b2 <> a3 And b2 <> b1 Then
For b3 = 0 To 9
If b3 <> a1 And b3 <> a2 And b3 <> a3 And b3 <> b1 And b3 <> b2 Then
For c1 = 1 To 9
If c1 <> a1 And c1 <> a2 And c1 <> a3 And c1 <> b1 And c1 <> b2 And c1 <> b3 Then
For c2 = 0 To 9
If c2 <> a1 And c2 <> a2 And c2 <> a3 And c2 <> b1 And c2 <> b2 And c2 <> b3 And c2 <> c1 Then
For c3 = 0 To 9
If c3 <> a1 And c3 <> a2 And c3 <> a3 And c3 <> b1 And c3 <> b2 And c3 <> b3 And c3 <> c1 And c3 <> c2 Then
a = a1 * 100 + a2 * 10 + a3
b = b1 * 100 + b2 * 10 + b3
c = c1 * 100 + c2 * 10 + c3
If (a * a - b * b - c * c) = (a - b - c) Then
ResStr = ResStr & CStr(a) & " " & CStr(b) & " " & CStr(c) & Chr(13)
End If
End If
Next c3
End If
Next c2
End If
Next c1
End If
Next b3
End If
Next b2
End If
Next b1
End If
Next a3
End If
Next a2
Next a1
MsgBox (ResStr)
End Sub
309 186 247
309 247 186
627 319 540
627 540 319
719 234 680
719 680 234
839 504 671
839 671 504
952 630 714
952 714 630
-----------------
Паскаля у меня нет, вот на прожка на VBA Excel, можно несложно переделать в pas:
Sub abc()
Dim a, b, c As Long
Dim a1, a2, a3, b1, b2, b3, c1, c2, c3 As Long
Dim ResStr As String
For a1 = 1 To 9
For a2 = 0 To 9
If a2 <> a1 Then
For a3 = 0 To 9
If a3 <> a1 And a3 <> a2 Then
For b1 = 1 To 9
If b1 <> a1 And b1 <> a2 And b1 <> a3 Then
For b2 = 0 To 9
If b2 <> a1 And b2 <> a2 And b2 <> a3 And b2 <> b1 Then
For b3 = 0 To 9
If b3 <> a1 And b3 <> a2 And b3 <> a3 And b3 <> b1 And b3 <> b2 Then
For c1 = 1 To 9
If c1 <> a1 And c1 <> a2 And c1 <> a3 And c1 <> b1 And c1 <> b2 And c1 <> b3 Then
For c2 = 0 To 9
If c2 <> a1 And c2 <> a2 And c2 <> a3 And c2 <> b1 And c2 <> b2 And c2 <> b3 And c2 <> c1 Then
For c3 = 0 To 9
If c3 <> a1 And c3 <> a2 And c3 <> a3 And c3 <> b1 And c3 <> b2 And c3 <> b3 And c3 <> c1 And c3 <> c2 Then
a = a1 * 100 + a2 * 10 + a3
b = b1 * 100 + b2 * 10 + b3
c = c1 * 100 + c2 * 10 + c3
If (a * a - b * b - c * c) = (a - b - c) Then
ResStr = ResStr & CStr(a) & " " & CStr(b) & " " & CStr(c) & Chr(13)
End If
End If
Next c3
End If
Next c2
End If
Next c1
End If
Next b3
End If
Next b2
End If
Next b1
End If
Next a3
End If
Next a2
Next a1
MsgBox (ResStr)
End Sub
Alex Fresh
норм, только не хватает отрицательных чисел...
добавятся еще несколько условий...
добавятся еще несколько условий...
Сам ищи
Otabek Suleimenov
Не нашел, прошу помощи, хотя бы ответ
Похожие вопросы
- Вопросик по Pascal. Есть переменные A,B,C,D. Как сделать так, чтобы при вводе A выводилось цифра 1, B - 2, C-3, D-4?
- Уравнение a*x+b*y=c
- Помогите, разработать программу вычисления двух выражений, в ассемблереX= (a/2+b^2)/3*cY= (b^3-(12+x)/a)/c+2
- даны 3 разл целых числа a,b,c используя оператор GOTO составить программу для ввода чисел в порядке убывания
- помогите решить задачу!...Даны целые числа a, b, c, являющиеся сторонами некоторого треугольника.Проверить истинность вы
- Программисты! Помогите пожалуйста! Нужно на паскале написать код к следующей задаче: Даны натуральные числа a, b, c
- помогите составить таблицы истиности -А -> (B + C); (A B) * C; -A + -B + C; - (A + B) * C ; A * B _+ C; A B
- {(a,b), (c,b), (c,a)} - является транзитивным или нет?
- срочно помогите написать программу на ассемблере вычисляющую R. R=x2+y2, где x=a+b-c, y=b*c-a. a,b,c вводятся с клавы
- Паскаль! Даны векторы: a={xn}, b={yn}, c={zn}, d={dn}. Построить матрицу К, сторонами которой являются упорядочены в