1.Determine the type of graphics and write the advantages and disadvantages (Определите тип графики и напишите преимущества и недостатки) Вид графики i T
3,7,9 37,93,79 973,979,373 Вообще говоря это зависит от формулировки "используя цифры". Из задания непонятно, использовать нужно ВСЕ цифры, или достаточно использования любых из них. Если под словом "используя" понимать, что можно использовать только эти цифры, но при этом использовать все не обязательно, то можно записать 77 и 999. Всего трёхзначных чисел из цифр 3,7,9 можно записать 3*3*3 (по три возможных цифры на каждую позицию - если цифры на позициях могут повторяться. и 3*3*1, если не могут повторяться.
Const PTR = 10; type razbivka = array[0..PTR] of byte; var n, i, z, k: byte; x: razbivka; procedure p(var x: razbivka; var z: byte); var i, j, s: byte; begin i := z - 1; s := x[z]; while (i > 1) and ( x[i - 1] <= x[i] ) do begin s := s + x[i]; dec(i); end; inc( x[i] ); z := i + s - 1; for j := i + 1 to z do x[j] := 1; end; begin write('Введите число: '); readln(n); write(n,' = '); z := n; for i := 1 to z do x[i] := 1; for i := 1 to n do begin if i > 1 then write(' + '); write( x[i], '' ); end; writeln; repeat p( x, z ); inc(k); write( n,' = ' ); for i := 1 to z do begin if i > 1 then write(' + '); write( x[i], '' ); end; writeln; until z = 1; end.
p.s: нашел в интернете для вас вариант с рекурсией. Сами можете убедиться, что с ней только хуже (по быстродействию уж точно)
const m = 100; var a: array[1..m] of integer; k, n: integer; procedure p(j,n: integer); var i: integer; begin if ( n = 0 ) and ( k > 1 ) then begin for i := 1 to k do write( a[i] : 4 ); writeln; end else for i := j to n do begin Inc(k); a[k] := i; p( j, n - i ); Dec(k); end; end; begin write('Введите число: '); readln(n); k := 0; p(1,n); end.
значения PTR и m можно поставить и больше, но тогда я не ручаюсь)
37,93,79
973,979,373
Вообще говоря это зависит от формулировки "используя цифры". Из задания непонятно, использовать нужно ВСЕ цифры, или достаточно использования любых из них. Если под словом "используя" понимать, что можно использовать только эти цифры, но при этом использовать все не обязательно, то можно записать 77 и 999.
Всего трёхзначных чисел из цифр 3,7,9 можно записать 3*3*3 (по три возможных цифры на каждую позицию - если цифры на позициях могут повторяться. и 3*3*1, если не могут повторяться.