Имеется исполнитель, который может производить с числом 2 действия: прибавлять 1 и умножать на 2.получить: а)число 5. б)число 99 в)число 99, если использовать орифметические операции не более 10 раз. начальное число 0.
Изначально ноль. так как, что не умножить на ноль равно ноль, то первым действием умножать не будет смысла. из этого следует что первое действие во всех случаях это "прибавить 1". а) 0 "прибавить 1" "прибавить 1" " умножить 2" "прибавить 1" далее просто назову команду "прибавлять 1" - 1 " умножать на 2" - буду просто писать цифры этих команд б) 1222221111111111111111121 в) 1112222121
Екатерина_Кирушев
31.05.2022
Var i: integer; begin for i: =1 to 20 do writeln(i: 2,i*i*i: 10) end. результат 1 1 2 8 3 27 4 64 5 125 6 216 7 343 8 512 9 729 10 1000 11 1331 12 1728 13 2197 14 2744 15 3375 16 4096 17 4913 18 5832 19 6859 20 8000
Veronika1270
31.05.2022
1. современное решение // pascalabc.net 3.2, сборка 1488 от 21.06.2017 // внимание! если программа не работает, обновите версию! function from5to10(self: sequence of string): sequence of integer; extensionmethod; // перевод последовательности заданных на строках пятиричных чисел // в последовательность целых десятичных чисел begin foreach var s in self do begin var r: =0; var pa: =1; foreach var c in s.reverse do begin r+=c.todigit*pa; pa*=5 end; yield r end end; begin var s: =readlnstring('введите строку: ').matchvalues('[0-4]+').from5to10; if s.count=0 then writeln('s=-1') else writeln('s=',s.sum) end. пример введите строку: sdf812973j223k s=73 2. решение на turbopascal ("так писали наши отцы и деды в 1983 году, так и нас сейчас учат в школе") uses crt; function from5to10(n: string): integer; { перевод из пятиричного числа в строковом представлении в целое десятичное } var i,pa,s: integer; begin s: =0; pa: =1; for i: =length(n) downto 1 do begin s: =s+pa*(ord(n[i])-ord('0')); pa: =pa*5 end; from5to10: =s end; var s,w: string; i,k,r: integer; begin clrscr; write('введите строку: '); readln(s); w: =''; r: =0; k: =0; for i: =1 to length(s) do begin if pos(s[i],'01234')> 0 then begin if w='' then k: =k+1; w: =w+s[i] end else if w< > '' then begin r: =r+from5to10(w); w: ='' end end; if k=0 then writeln('s=-1') else writeln('s=',r); readkey end.