Найти сумму первых тысячи чисел кратных двойке и тройке одновременно и их средне арифметическое

Sofwork Sofwork    2   09.07.2019 14:10    0

Ответы
Ayannn Ayannn  02.10.2020 23:26
Int i,k,sum,arif;
i=0;
k=0;
while(i<=1000){
if(k%2==0 && k%3==0){
i++;
sum+=k;
}
k++;
}
arif = sum/i;

std::cout << "Среднее арифметическое = " << arif;
std::cout << endl << "Сумма чисел = " << sum;
ПОКАЗАТЬ ОТВЕТЫ
Дима2005Dima Дима2005Dima  02.10.2020 23:26
Немного теории. Если число одновременно кратно a и b, то она кратно и их произведению, т.е. a x b. В нашем случае числа должны быть кратны 2х3=6.
первое натуральное число, кратное 6, это 6. Далее следуют 12, 18, ...
Задача сводится к нахождению суммы ряда 6+12+18+...+6*n, где n=1000, т.е.
s=6+12+18+...+6000.
Это сумма арифметической прогрессии и она может быть найдена по формуле:
\displaystyle s= \frac{a_1+a_n}{2}\times n
Среднее арифметическое такого ряда будет равно сумме, деленной на количество членов ряда n:
\displaystyle \mathrm avg= \left(\frac{a_1+a_n}{2}\times n\right)/ n=\frac{a_1+a_n}{2}
Теперь можно решить задачу даже "в уме": avg=(6+6000)/2=3003, s=3003x1000=3003000. Это будут контрольные значения для проверки работы программы.

//PascalAC.Net 3.0, сборка 1066
const
  n=1000;
var
  i:integer;
  s:longint;
begin
  s:=0;
  for i:=1 to 1000 do s:=s+6*i;
  Writeln('Сумма=',s,', среднее арифметическое=',s/n)
end.

Результат выполнения программы:
Сумма=3003000, среднее арифметическое=3003
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика