Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Как проверить является ли данное число полным квадратом?
1
  1  Прищенко Богдан Олегович, 25 сентября 2009 г. 13:10:25
      причина не в этом:) протупил утром - ошибка первого кода вперестановке полных местами:) :)
З.Ы. теперь хоть представляю, как это работает:)
  2  Прищенко Богдан Олегович, 25 сентября 2009 г. 12:56:04
      хм:) действительно:) я просто проверял код в своей стандартной заготовке, там другие инклюды:)
  3  Мехрдоди Одил (ТРГИ), 25 сентября 2009 г. 12:39:42
      Богдан, вот эта прога рабоает верно!
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i;
cin>>i;
if (sqrt((double)i)*sqrt((double)i)==i) cout<<"polni"; else cout<<"nepolni";
}
  4  Прищенко Богдан Олегович, 25 сентября 2009 г. 6:38:04
      фактически алгоритм - это алгоритм, для любого языка. ставим округление вниз и получаем сишку.
  5  Прищенко Богдан Олегович, 25 сентября 2009 г. 6:34:49
      алгоримт для паскаля, например, if (trunc(sqrt(q))*trunc(sqrt(q)))==q) {return 1;} else {return 0;}
или if (trunc(sqrt(q))!=sqrt(q){return 0;} else {return 1;}
по поводу С++ - Мехрдод, я почему-то то не понял, как он работает... корень будет даблом, следовательно, корень на корень равно числу... Там какая-то фишка с потерей значения из за вычилений, все упрется в точность, или как? На моем локальном копмиляторе получается бред.
  6  Набиев Умед (ТРГИ), 24 сентября 2009 г. 22:28:59
      ну тогда просто корень тупа целочисленно раздели на 1 и потом умножая на себя проверь.
  7  Верещака Артём Олександрович, 24 сентября 2009 г. 22:01:31
      Мне надо бы на паскале...
  8  Мехрдоди Одил (ТРГИ), 24 сентября 2009 г. 21:54:12
      #include<cmath>

на паскале аналогично можно тоже тока код надо перевести
  9  Мехрдоди Одил (ТРГИ), 24 сентября 2009 г. 21:53:36
      на си можно так if (sqrt((double)i)*sqrt((double)i)!=i) cout<<"полные" else cout<<"не полный";
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru