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

0 голосов
44 просмотров

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


Информатика (19 баллов) | 44 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Немного теории. Если число одновременно кратно 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

(142k баллов)
0 голосов

Int i,k,sum,arif;
i=0;
k=0;
while(i<=1000){<br>if(k%2==0 && k%3==0){
i++;
sum+=k;
}
k++;
}
arif = sum/i;

std::cout << "Среднее арифметическое = " << arif;<br>std::cout << endl << "Сумма чисел = " << sum;

(80 баллов)
0

"Вещь в себе"? Вычислили значение и оставили внутри программы?

0

в каком смысле оставил внутри?

0

я же не знаю требуется ли выводить результат или же его дальше будут использовать

0

Именно поэтому его надо вывести. Хотя бы для того, чтобы проверить задачу контрольным счетом.

0

В целом решение неверное. Нет инициализации sum. И считает программа совсем не то, что надо: она выдаст arif=500, т.е. просто половину от 1000, записанной в while.

0

Решение отправлено на исправление