Ниже записана программа. Получив на вход число x, программа печатает три числа a, b и c.
Какое число x нужно ввести, чтобы получить a=1,b=3,c=8?
2 задание
Помогите!
Ответы
Ответ:
такого числа нет
Объяснение:
var x,a,b,c: integer;
begin
for x:=1 to 10000 do
begin
a:= x mod 100;
b:= x div 10;
c:= x div 10 mod 10;
if (a=1) and (b=3) and (c=8) then
begin
writeln(x);
end;
end;
end.
Данная программа не выводит ничего, т.е. в диапазоне от 1 до 10000 решения нет.
Если переписать программу вот так:
var x,a,b,c: integer;
begin
for x:=1 to 1000 do
begin
a:= x mod 100;
b:= x div 10;
c:= x div 10 mod 10;
if a=1 then
begin
writeln('a - ', x);
end;
if b=3 then
begin
writeln('b - ', x);
end;
if c=8 then
begin
writeln('c - ', x);
end;
end;
end.
Получаем:
a - 1
b - 30
b - 31
b - 32
b - 33
b - 34
b - 35
b - 36
b - 37
b - 38
b - 39
c - 80
c - 81
c - 82
c - 83
c - 84
c - 85
c - 86
c - 87
c - 88
c - 89
a - 101
c - 180
c - 181
c - 182
c - 183
c - 184
c - 185
c - 186
c - 187
c - 188
c - 189
a - 201
c - 280
c - 281
c - 282
c - 283
c - 284
c - 285
c - 286
c - 287
c - 288
c - 289
a - 301
c - 380
c - 381
c - 382
c - 383
c - 384
c - 385
c - 386
c - 387
c - 388
c - 389
a - 401
c - 480
c - 481
c - 482
c - 483
c - 484
c - 485
c - 486
c - 487
c - 488
c - 489
a - 501
c - 580
c - 581
c - 582
c - 583
c - 584
c - 585
c - 586
c - 587
c - 588
c - 589
a - 601
c - 680
c - 681
c - 682
c - 683
c - 684
c - 685
c - 686
c - 687
c - 688
c - 689
a - 701
c - 780
c - 781
c - 782
c - 783
c - 784
c - 785
c - 786
c - 787
c - 788
c - 789
a - 801
c - 880
c - 881
c - 882
c - 883
c - 884
c - 885
c - 886
c - 887
c - 888
c - 889
a - 901
c - 980
c - 981
c - 982
c - 983
c - 984
c - 985
c - 986
c - 987
c - 988
c - 989
Иначе говоря есть много вариантов для x, чтобы получить а или b или c отдельно, но нет такого значения х, чтобы они принимали значения из условия.