Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2009, 13:15   #1
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию Квадраты

Водим например 1 и 5 и должно вывести числа являющиеся полными квадратами на етом отрезки: 1 и 4!Дайте идею!
Cpluser вне форума Ответить с цитированием
Старый 20.09.2009, 13:47   #2
VashMaster
 
Регистрация: 20.09.2009
Сообщений: 8
По умолчанию

Как определяются полный квадраты? алгоритм раскройте, пож.
Иногда, разрабатываю сайты.
VashMaster вне форума Ответить с цитированием
Старый 20.09.2009, 13:56   #3
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

число без остачи!
Cpluser вне форума Ответить с цитированием
Старый 20.09.2009, 13:59   #4
АНК
Пользователь
 
Регистрация: 01.09.2009
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Cpluser Посмотреть сообщение
Дайте идею!
Корень из большего числа, отбросить дробную часть, а затем квадраты членов натурального ряда от полученного числа до 1. Пользуйтесь...
АНК вне форума Ответить с цитированием
Старый 20.09.2009, 14:45   #5
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Спасибо но я не понял!(
Cpluser вне форума Ответить с цитированием
Старый 20.09.2009, 15:31   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Берём правую часть отрезка(в Вашем примере 5) находим его корень, при этом отбрасываем дробную часть( то есть будет 2 ), а потом в цикле проходим все числа от левой части отрезка(в Вашем случае 1), до полученного числа(2) и выводим их квадраты. Например:
Код:
#include <iostream>
#include <cmath>

int main()
{
	int x1, x2;

	std::cout << "Enter x1: ";
	std::cin >> x1;
	std::cout << "Enter x2: ";
	std::cin >> x2;

	int n = sqrt((double)x2);

	for(int i = x1; i <= n; i++)
		std::cout << i*i << ' ';

	std::cout << std::endl;

	return 0;
}
netrino вне форума Ответить с цитированием
Старый 20.09.2009, 17:11   #7
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Только не от левой части отрезка, а от ее корня!
Код:
int m = sqrt((double)x1);
int n = sqrt((double)x2);

for(int i = m; i <= n; i++)
	if (i*i) > x1	//Т.к. m*m <= x1
		std::cout << i*i << ' ';
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 20.09.2009, 17:19   #8
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Гром Посмотреть сообщение
Только не от левой части отрезка, а от ее корня!
Код:
int m = sqrt((double)x1);
int n = sqrt((double)x2);

for(int i = m; i <= n; i++)
	if (i*i) > x1	//Т.к. m*m <= x1
		std::cout << i*i << ' ';
Да, точно)
netrino вне форума Ответить с цитированием
Старый 20.09.2009, 17:26   #9
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Спасибо всем!
Cpluser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц