Вычислите для первых n элементов: a) 1+3+5+7+ и 1*3*5*7*; b)2+4+6+8+ и 2*4*6*8*; c)3+6+9+12+ и 3*6*9*12*; d)4+8+12+ и 4*8*12*16*; например: при n=3 имеем 1+3+5=9; 1*3*5=15.
В 7-ричной системе счисления используются 7 разных цифр. 1) Найдём сначала количество всех возможных 5-значных чисел. На первом месте в числе может стоять любая из 7 цифр, кроме 0, то есть 6 вариантов. На втором, третьем, четвертом и пятом местах может стоять любая из 7 цифр, то есть по 7 вариантов на каждое место. Всего возможных чисел: 6*7*7*7*7=14406 2) Найдём теперь количество чисел, у которых строго ВСЕ цифры разные. На первом месте в числе может стоять любая цифра, кроме 0, то есть 6 вариантов. На втором месте может стоять любая из 6 оставшихся, то есть тоже 6 вариантов. На третьем месте может стоять любая из 5 оставшихся, то есть 5 вариантов. На четвертом месте может стоять любая из 4 оставшихся, то есть 4 варианта. И, наконец, на пятом месте может стоять любая из 3 оставшихся, то есть 3 варианта. Всего возможных чисел: 6*6*5*4*3=2160 3) Теперь найдём искомое количество чисел, у которых НЕ ВСЕ цифры разные: 14406 - 2160 = 12246 ответ: 12246
vanvangog199826
12.01.2021
Более изящное решение :)
Проблема в строке c:= (b*b*b); Ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. Нужно проверять число а: если от 100 до 999, то выполняем c:= (b*b*b); а если от 1000 до 9999, то выполняем c:= (b*b*b*b);
Код ниже работает и выдаёт результат: число Армстронга ==> 153 число Армстронга ==> 370 число Армстронга ==> 371 число Армстронга ==> 407 число Армстронга ==> 1634 число Армстронга ==> 8208 число Армстронга ==> 9474
var a,b,c,d,a2:integer; begin for a:=100 to 9999 do begin d:=0; a2:=a; while (a2 <> 0) do begin b:= a2 mod 10; a2:= a2 div 10; if a<1000 then c:= (b*b*b) else c:= (b*b*b*b); d:= d+c; end; if (a = d) then writeln('число Армстронга ==> ', a); end; end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Вычислите для первых n элементов: a) 1+3+5+7+ и 1*3*5*7*; b)2+4+6+8+ и 2*4*6*8*; c)3+6+9+12+ и 3*6*9*12*; d)4+8+12+ и 4*8*12*16*; например: при n=3 имеем 1+3+5=9; 1*3*5=15.
// Внимание! Если программа не работает, обновите версию!
procedure L(s:sequence of integer);
begin
s.Print(',');
Writeln(': S=',s.Sum,', П=',s.Aggregate(BigInteger(1),(p,q)->p*q))
end;
begin
var n:=ReadInteger('n=');
L(Range(1,2*n-1,2));
L(Range(2,2*n,2));
L(Range(3,3*n,3));
L(Range(4,4*n,4))
end.
Пример
n= 10
1,3,5,7,9,11,13,15,17,19: S=100, П=654729075
2,4,6,8,10,12,14,16,18,20: S=110, П=3715891200
3,6,9,12,15,18,21,24,27,30: S=165, П=214277011200
4,8,12,16,20,24,28,32,36,40: S=220, П=3805072588800