На каждой итерации цикла x div 100 убирает 2 цифры числа x с конца и к a прибавляется 1.
Тогда если a = 2 значит x лежит в диапазоне от 100 до 9999. Например при x=100 на первой итерации a=a+1=1 ,x=x div 100=1, 1>0 цикло продолжается a:=a+1=2; x:=x div 100=0. При x=9999 на первой итерации a=a+1=1 ,x=x div 100=99, 99>0 цикло продолжается a:=a+1=2; x:=x div 100=0.
К переменной b прибавляется 2 последние цифры числа x. Если в числе x будет четыре цифры то после первой итерации в числе x останется 2 цифры. Это значит что даже при минимальном четырехзначном числе x=1000 b=b+(10 mod 100)=b+10=10 мы получим значение большее 8. Значит нам подходят только трехзначные числа. Чтобы число было максимальным ставим 8 в сотни:800.
delta88
23.11.2020
Не самый лёгкий, но работающий
const n = 10000;//Не изменяемая по ходу программы переменная var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer; begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Сравните значения основных свойств первых электронных вычислительных машин: американской eniac и созданной в украине мэсм
Тогда если a = 2 значит x лежит в диапазоне от 100 до 9999. Например при x=100 на первой итерации a=a+1=1 ,x=x div 100=1, 1>0 цикло продолжается a:=a+1=2; x:=x div 100=0. При x=9999 на первой итерации a=a+1=1 ,x=x div 100=99, 99>0 цикло продолжается a:=a+1=2; x:=x div 100=0.
К переменной b прибавляется 2 последние цифры числа x. Если в числе x будет четыре цифры то после первой итерации в числе x останется 2 цифры. Это значит что даже при минимальном четырехзначном числе x=1000 b=b+(10 mod 100)=b+10=10 мы получим значение большее 8. Значит нам подходят только трехзначные числа. Чтобы число было максимальным ставим 8 в сотни:800.