Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помощь в реализации функции || Конвертировать код с одного языка на другой (https://javascript.ru/forum/misc/72984-pomoshh-v-realizacii-funkcii-%7C%7C-konvertirovat-kod-s-odnogo-yazyka-na-drugojj.html)

MrFlatman 11.03.2018 23:46

Помощь в реализации функции || Конвертировать код с одного языка на другой
 
Стоит задача, реализовать функцию для выполнения:
Описать функцию IsSquare(K) логического типа, возвращающую
TRUE, если целый параметр K (> 0) является квадратом некоторого целого числа, и FALSE в противном случае. С ее помощью найти количество квадратов в наборе из 10 целых положительных чисел.

Есть код, он уже написал на С++. Не могли бы вы помочь конвертировать его в JS
Код:

#include <iostream>
#include <windows.h>
#include <fstream>
#include <cmath>

using namespace std;

bool IsSquare(int K);

int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  int n = 1;
  int num = 0;
  int K;
  int q;
  ifstream in ("Proc25.txt");
 
  cout << "Набор чисел: ";
  while (in >> K) {
      cout << K << " ";
      if (K>0) {
        q = IsSquare(K);
                num += q;
                ++n;
      }
  }
  cout << endl;
  cout << "Количество квадратов натуральных чисел в наборе = " << num << endl;
  system ("pause");
  return 0;
}

bool IsSquare(int K)
{
  for(int i=1; i*i<=K; ++i) {
      if (i*i==K) return true;
  }
}


рони 12.03.2018 00:19

MrFlatman,
<script>
  "use strict"
function IsSquare(K)
{
   K = Math.sqrt(K);
   return K ==  (K|0)
}
var arr = Array.from({length : 10}, function() {
   return 1 + 100 * Math.random()|0
})
document.write(JSON.stringify(arr))
arr = arr.filter(IsSquare);
document.write(JSON.stringify(arr))
</script>

MrFlatman 12.03.2018 01:01

рони, спасибо, как всегда выручаете, немного переделал Ваш код, для упрощение жизни себе)
Заодно пришлось и ознакомится с Array.from и JSON.stringify, так как опыта совсем немного, поэтому впервые сегодня столкнулся с этим


Часовой пояс GMT +3, время: 16:09.