| 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<<"не полный";
|
|
|