Задачи на целые числа без использования цикла
Дано натуральное число. Определить, является ли оно квадратом какого либо натурального числа.
Для того чтобы определить является ли заданное натуральное число квадратом какого либо другого натурального числа мы поступим следующим образом. Извлечем корень квадратный из нашего натурального числа (получится действительное число). Округлим его до целого числа. Если квадрат этого нового целого числа будет равен исходному числу, значит заданное натуральное число и является квадратом другого натурального числа.
Например: округление равно 7 и 72 = 49.
округление равно 7, но 72 ≠ 50
округление равно 7, но 72 ≠ 48.
Примечания для Pascal: В Pascal корень квадратный ( ) - функция sqrt,
а округление – функция round.
Примечания для С++: В С++ корень квадратный ( ) - функция sqrt, а округление до целого мы произведем так - a=(int) sqrt(n+0.5); то есть получим чуть большее число и удалим у него дробную часть. (int) поставленное перед любым выражением отбрасывает дробную часть. Хотя можно признаться, что и в С++ можно округление выполнить так a=(int) round(sqrt(n));
Program A1_12; Var N,a:integer; begin readln(N); a:=round(sqrt(N)); if (a*a=N) then writeln('YES') else writeln('NO'); readln; end. |
//Program A1.12 #include <iostream> #include <cmath>
using namespace std;
int main() { int n,a; cin>>n; a=(int) sqrt(n+0.5); if(a*a==n) cout<<"YES\n"; else cout<<"NO\n"; return 0; } |