Rumah  >  Artikel  >  hujung hadapan web  >  Program JavaScript untuk menyemak sama ada semua putaran nombor tertentu lebih besar daripada atau sama dengan nombor tertentu

Program JavaScript untuk menyemak sama ada semua putaran nombor tertentu lebih besar daripada atau sama dengan nombor tertentu

WBOY
WBOYke hadapan
2023-09-08 17:49:081549semak imbas

JavaScript 程序检查给定数字的所有旋转是否大于或等于给定数字

Dalam artikel ini, kami akan melalui program JavaScript untuk menyemak sama ada semua putaran nombor yang diberikan adalah lebih besar daripada atau sama dengan nombor yang diberikan. Kami akan menulis algoritma dan menerangkan setiap langkah yang kami lakukan. Kerumitan masa kod yang akan dibincangkan adalah optimistik, manakala kerumitan ruang akan bertambah baik dari satu kod ke yang lain.

pengenalan masalah

Dalam soalan ini kita diberi nombor dan kita perlu menyemak sama ada setiap putaran lebih besar daripada nombor semasa atau secara ringkas kita perlu mencari putaran nombor semasa yang kurang daripada nombor semasa jika terdapat lebih kecil nombor dalam pusingan maka Kami akan kembali palsu jika tidak kami akan kembali benar.

Putaran nombor yang diberikan

Contoh

Putaran nombor yang diberikan boleh terdiri daripada dua jenis: mengikut arah jam atau lawan jam. Dalam putaran mengikut arah jam, kami mengambil digit terakhir daripada nombor dan menambahnya sebelum digit pertama. Contohnya -

var number = 1234 
var last_digit = number%10;
number /= 10;
number = Math.floor(number)
var answer = last_digit.toString() + number.toString();
console.log("The first rotation of the given number is: " + answer)

Dalam kod di atas, kita diberi nombor dan kita perlu mencari putaran pertama nombor yang diberikan. Mula-mula, kami menyimpan digit terakhir nombor semasa dalam pembolehubah lain dan kemudian mengeluarkan digit terakhir nombor yang diberikan dengan membahagikannya dengan 10 dan mengambil terikat.

Akhir sekali, kami menambah nombor semasa selepas nombor terakhir, yang memberikan kami putaran pertama kami.

Contoh

Untuk mendapatkan putaran seterusnya atau putaran kedua bagi nombor semasa kita boleh mendapatkan putaran seterusnya bagi putaran pertama atau pun kita boleh melakukannya dengan kaedah lain yang biasa bagi mana-mana putaran mari kita lihat kod tersebut. -

var number = 1234 
var i = 2
var n_string = number.toString()
var last_i_elements = n_string.substring(n_string.length-i);
var answer = last_i_elements+ n_string.substring(0,n_string.length-i);
console.log("The ith rotation of the given number is: " + answer)

Dalam kod di atas, kita diberi nombor dan kita perlu mencari pusingan ke-tiga nombor yang diberikan. Pertama, kami menyimpan digit "i" terakhir nombor semasa dalam pembolehubah lain.

Akhir sekali, kami menambahkan nombor semasa pada rentetan yang mengandungi nombor "i" terakhir, yang memberi kami putaran pertama kami.

Kaedah yang dibincangkan di atas adalah dengan memutarkan nombor mengikut arah jam, untuk lawan jam kita perlu memilih nombor dari hadapan dan menambahnya ke penghujung.

Apabila tidak dinyatakan putaran mana yang perlu kita pilih, kita pilih mengikut arah jam. Jadi dalam contoh kita akan melihat putaran mengikut arah jam.

kaedah

Kaedah ini ialah kaedah brute force, dalam kaedah ini kita akan mencari setiap putaran nombor yang diberikan dan menyemak setiap nombor yang lebih tinggi. Jika kami mendapati sebarang nombor kurang daripada nombor semasa maka kami akan mengembalikan palsu sebaliknya mengembalikan benar.

Contoh

Mula-mula mari kita lihat kod dan kemudian kita akan beralih ke penjelasan kod -

function check(number,i){
   var n_string = number.toString()
   var last_i_elements = n_string.substring(n_string.length-i);
   var answer = last_i_elements+ n_string.substring(0,n_string.length-i);
   if(answer < n_string){
      return false;
   }
   return true;
}

var number = 12345
// checking for every rotation
var ans = true;
for(var i=1;i<number.toString().length;i++){
   ans = check(number,i);
   if(ans == false){
      break;
   }
}
if(ans == true){
   console.log("There is no rotation present which is less then given number")
}
else{
   console.log("There is a rotation of given number present which is less then given number")
}

Dalam atur cara di atas, mula-mula kita lelaran daripada 1 kepada saiz nombor tolak 1 dalam gelung untuk untuk mendapatkan setiap putaran daripada 1 kepada saiz tolak 1. Dalam setiap lelaran, kami memanggil fungsi yang telah ditetapkan.

Dalam fungsi kita akan mendapat putaran ke-i yang diluluskan sebagai parameter kepada fungsi dan dibandingkan dengan nombor yang diberikan. Jika putaran ke-i kurang daripada nombor yang diberikan, maka kami akan mengembalikan palsu sebagai nilai pulangan, jika tidak mengembalikan benar.

Kami mengekalkan pembolehubah yang dipanggil jawapan yang akan menyimpan nilai benar dan salah yang dikembalikan daripada fungsi dan mencetak jawapan seperti yang diperlukan.

Kerumitan Masa dan Ruang

Dalam kod di atas, kami memanggil fungsi check() n kali jumlahnya, dengan n ialah saiz nombor yang diberikan. Di dalam fungsi, kami mencipta subrentetan yang merupakan salinan nombor yang diberikan dan berulang n kali, bermakna kami menggunakannya n*n kali. Oleh itu, kerumitan masa bagi fungsi yang diberikan ialah O(N*N).

Dalam fungsi semak, setiap kali kita mencipta salinan nombor yang diberikan, bermakna kita menggunakan ruang N tambahan. Oleh itu, kerumitan ruang bagi fungsi yang diberikan ialah O(N).

Idea umum

Dalam kod di atas, jika semua nombor adalah berbeza, maka kita boleh mendapatkan jawapan dalam hanya kerumitan masa O(N) dan kerumitan ruang O(1), kerana jika sebarang nombor kurang daripada nombor pertama, Ia bermakna terdapat nombor yang mungkin kurang dalam putaran tepat berbanding nombor awal.

KESIMPULAN

Dalam tutorial ini, kami menggunakan program JavaScript untuk menyemak sama ada semua putaran nombor tertentu adalah lebih besar daripada atau sama dengan nombor tertentu. Kerumitan masa program ialah O(N*N) dan kerumitan ruang ialah O(N), di mana N ialah saiz nombor yang diberikan. Kami telah melaksanakan program di mana kami boleh mencari setiap putaran nombor tertentu dan membandingkannya dengan nombor asal.

Atas ialah kandungan terperinci Program JavaScript untuk menyemak sama ada semua putaran nombor tertentu lebih besar daripada atau sama dengan nombor tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam