В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
HeeeeelpPlz
HeeeeelpPlz
11.07.2020 04:46 •  Информатика

C++ Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N.

это мой код
#include

using namespace std;

int main() {
int x,n=15,i;
for(i=1;x<=n;i++){
cout< x=i*i;
}

}

откуда 0?и как от него избавиться

Показать ответ
Ответ:
1lёn1
1lёn1
03.10.2021 17:10

Код неверный

Объяснение:

Вот код:

Первый (простой, работает медленнее)

#include<iostream>

using namespace std;

int main() {

   int n;

   cin >> n;

   for(int i = 1; i <= n; i++) {

       if(sqrt(i) == (int)sqrt(i))

           cout << i << ' ';

   }

}

 Фактически мы просто для каждого числа проверяем, является ли его квадратный корень целым числом.

#include<iostream>

using namespace std;

int main() {

   int n;

   cin >> n;

   int x = 1, d = 3;

   while(x <= n) {

       cout << x << ' ';

       x += d;

       d += 2;

   }

}

Решение основывается на этом утверждении:

Разница между квадратами двух последовательных натуральных чисел больше на 2 разницы между предыдущими двумя квадратами, например:

4 - 1 + 2 = 9 - 4

Доказательство:

(n + 1)^{2} - n^2 = n^2 + 2n + 1 - n^2 = 2n + 1

n^2 - (n - 1)^2 = n^2 - n^2 + 2n - 1 = 2n - 1

Из чего получаем:

(n + 1)^2 - n^2 - (n^2 - (n - 1)^2) = 2n + 1 - (2n - 1) = 2

Доказано.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота