alarm
Задайте вопрос
Информатика
sniff

C++Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N. это мой код#include using namespace std;int main() { int x,n=15,i; for(i=1;x<=n;i++){ cout< x=i*i; }}откуда 0?и как от него избавиться

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

Код неверный

Вот код:

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

#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

Доказано.

186
Samukasa
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

Які основні складові має інформа

Вычислите выражения:11010(степен

Выполняем в тетрадиЗаполни табли

І. Представление целых чиселА) ц

Установіть відповідність між шкі

информатика 9 класс даю 20 поинт

Контакты
Реклама на сайте