Rumah > hujung hadapan web > tutorial js > Codewars - Anda adalah segi empat sama!

Codewars - Anda adalah segi empat sama!

Linda Hamilton
Lepaskan: 2025-01-03 03:05:39
asal
676 orang telah melayarinya

Salam.

Codewars - You

Saya menyiarkan cabaran Codewars dan proses pemikiran saya dalam siri ini. Saya menggunakan JS dan Node 18 apabila boleh. Hanya demi kejelasan, saya menggunakan mereka secara adil.

Seterusnya dalam siri ini ialah "You're a Square!". Lihat, ketagihan LEGO anda semakin tidak terkawal dan anda kini mengekodkan sebagai ubat gantian.

Codewars - You

Nah, awak sihat ?. Dan tugas anda seterusnya melibatkan segi empat sama. Jadi masalahnya cuba menjawab "Adakah nombor ini segi empat sama?". Jadi, bagaimana kita menangani perkara ini? Walau bagaimanapun kita inginkan. Seperti mana-mana masalah pengekodan.

Pertama, selesaikan. Kemudian, selesaikan dengan betul. Kemudian, selesaikan dengan betul dan cepat.

  1. Langkah 1: Buat kesilapan

Firasat pertama saya membawa saya kepada ini:

var isSquare = function(n){
  let nIsSquare = false;
  if (n>=0) {
      nIsSquare = ( n ** 2 ) == 2 * ( (n - 1) ** 2 ) - ( (n-2) ** 2 ) + 2;
  }
  return nIsSquare;
}
Salin selepas log masuk

Ini salah. Saya pergi dengan n2 =2(n1 )2(n2)2 2n^2 = 2(n − 1)^2 − (n − 2)^2 2n2 =2(n−1) 2(n−2)2 2
Terima kasih Wikipedia. Tetapi ini adalah formula untuk mengesahkan n^2. Saya memerlukan formula untuk mengesahkan n.

  1. Langkah 2: Lakukan dengan betulBUAT LEBIH BANYAK KESILAPAN

Pada artikel wikipedia yang lain terdapat cara ringkas dan kemas untuk mengira punca kuasa dua: Identiti eksponen.

Jadi kami betulkan kod kami yang terdahulu:

var isSquare = function(n){

  let nIsSquare = false;
  if (n>=0) {
     let sqrt = Math.E ** ( Math.log(n) / 2 );
     nIsSquare = Number.isInteger(sqrt);
  }

  return nIsSquare;
}
Salin selepas log masuk

Annnnnnnnnnnd:
Codewars - You

Oh, ayuh. Mengapa ia gagal? Oh. JavaScript melakukan perkara pelik dengan nombor titik terapung. Jadi, ia bukan kesalahan kod. Betul ke? Rasanya kita tidak akan pernah tahu. Walaupun begitu, saya sayang awak JS. Dasar pelik.

  1. Langkah 3: Lakukan dengan betul dan pantas

Hanya gunakan Math.sqrt():

var isSquare = function(n){
  let nIsSquare = false;
  if (n>=0) {
     nIsSquare = Number.isInteger(Math.sqrt(n));
  }
  return nIsSquare;
}
Salin selepas log masuk

Bukan yang terbaik, tetapi penyelesaian yang paling mudah. Melakukan kerja.

Selamat tinggal. Minum air ???.

Sebelumnya

Atas ialah kandungan terperinci Codewars - Anda adalah segi empat sama!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan