约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数_PHP
来看看这个问题的详细描述:
view sourceprint?一群猴子排成一圈,按 1,2,...,n 依次编号。然后从第 1 只开始数,数到第 m 只,把它踢出圈,从它后面再开始数, 再数到第 m 只,在把它踢出去...,如此不停的进行下去, 直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入 m、n, 输出最后那个大王的编号。
刚开始构思的时候想使用 PHP 数组来实现(当然最后还是使用的数组),然后模拟一个数组的内部指针,结果发现想模拟一个“数组指针”不是那么的容易,因为涉及到很多“指针”的操作,最后猛然想到,PHP 的数组本身就是有内部指针的,为什么还要去“造车轮子”呢?!于是乎~看代码:
复制代码 代码如下:
function getKingMonkey($n, $m)
{
$a = array();//声明内部数组
for($i = 1; $i {
$a[$i] = $i;//这一步是对号入座
}
reset($a);//为了严谨,我们来一个 reset() 函数,其实也可以省去
while(count($a) > 1)//主循环开始,这里使用的判别条件是数组元素的个数等于 1 的时候停止循环
{
for($counter = 1; $counter {
if(next($a)){//如果存在 next 元素
if($counter == $m)
{
unset($a[array_search(prev($a), $a)]);//当数到 m 时,使用 unset() 删除数组元素
}
}
else//如果不存在 next 元素
{
reset($a);//则数组的第一个元素充当 next 元素
if($counter == $m)
{
unset($a[array_search(end($a), $a)]);//当数到 m 时,使用 unset() 删除数组元素,注意这里是 end()
reset($a);//记得让数组内部指针“归位”
}
}
}
}
return current($a);
}
测试一下下:
echo "猴子大王的编号为:" . getKingMonkey(100, 17);
输出为:
view sourceprint?猴子大王的编号为:53
The End~

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan tatasusunan PHP untuk menjana dan memaparkan carta dan graf statistik PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas dengan keupayaan pemprosesan data dan penjanaan grafik. Dalam pembangunan web, kita selalunya perlu memaparkan carta dan graf statistik data Melalui tatasusunan PHP, kita boleh melaksanakan fungsi ini dengan mudah. Artikel ini akan memperkenalkan cara menggunakan tatasusunan PHP untuk menjana dan memaparkan carta dan graf statistik, serta menyediakan contoh kod yang berkaitan. Memperkenalkan fail perpustakaan yang diperlukan dan helaian gaya Sebelum bermula, kita perlu memperkenalkan beberapa fail perpustakaan yang diperlukan ke dalam fail PHP

Cara menggunakan tatasusunan PHP untuk menjana tayangan slaid dinamik dan paparan gambar Tayangan slaid dan paparan gambar adalah fungsi biasa dalam reka bentuk web dan sering digunakan dalam senario seperti karusel dan paparan galeri. Sebagai bahasa skrip sebelah pelayan yang popular, PHP mempunyai keupayaan untuk memproses data dan menjana halaman HTML dinamik, dan sangat sesuai untuk menjana tayangan slaid dinamik dan paparan gambar. Artikel ini akan memperkenalkan cara menggunakan tatasusunan PHP untuk menjana tayangan slaid dinamik dan paparan gambar, serta memberikan contoh kod yang sepadan. Sediakan data imej Mula-mula, kita perlu menyediakan satu set data laluan imej

Cara menggunakan tatasusunan PHP untuk melaksanakan log masuk pengguna dan fungsi pengurusan kebenaran Apabila membangunkan laman web, log masuk pengguna dan pengurusan kebenaran adalah salah satu fungsi yang sangat penting. Log masuk pengguna membolehkan kami mengesahkan pengguna dan melindungi keselamatan tapak web. Pengurusan kebenaran boleh mengawal kebenaran pengendalian pengguna di tapak web untuk memastikan pengguna hanya boleh mengakses fungsi yang mereka dibenarkan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan tatasusunan PHP untuk melaksanakan log masuk pengguna dan fungsi pengurusan kebenaran. Kami akan menggunakan contoh mudah untuk menunjukkan proses ini. Mula-mula kita perlu mencipta

Terdapat beberapa cara untuk menentukan tatasusunan dalam PHP: 1. Gunakan fungsi count(), yang sesuai untuk semua jenis tatasusunan. Walau bagaimanapun, perlu diambil perhatian bahawa jika parameter yang dimasukkan bukan tatasusunan, fungsi count() akan mengembalikan 0. Gunakan fungsi sizeof(), yang lebih digunakan untuk mengekalkan keserasian dengan bahasa pengaturcaraan lain; fungsi, Dengan menggunakan gelung untuk melintasi tatasusunan, setiap kali ia dilalui, pembilang ditambah dengan 1, dan akhirnya panjang tatasusunan diperoleh. Fungsi tersuai boleh diubah suai dan dikembangkan mengikut keperluan sebenar, menjadikannya lebih fleksibel.

Tatasusunan PHP ialah struktur data yang sangat biasa yang sering digunakan semasa proses pembangunan. Walau bagaimanapun, apabila jumlah data meningkat, prestasi tatasusunan boleh menjadi isu. Artikel ini akan meneroka beberapa teknik pengoptimuman prestasi untuk tatasusunan PHP dan memberikan contoh kod khusus. 1. Gunakan struktur data yang sesuai Dalam PHP, sebagai tambahan kepada tatasusunan biasa, terdapat beberapa struktur data lain, seperti SplFixedArray, SplDoublyLinkedList, dll., yang mungkin berprestasi lebih baik daripada tatasusunan biasa dalam situasi tertentu.

Pasangan nilai kunci tatasusunan PHP ialah struktur data yang terdiri daripada kunci dan nilai yang sepadan Kuncinya ialah pengecam elemen tatasusunan, dan nilainya ialah data yang dikaitkan dengan kunci. Ia membolehkan kami menyimpan dan mengakses data menggunakan kunci sebagai pengecam Dengan menggunakan pasangan nilai kunci, kami boleh mengendalikan dan mengurus elemen dalam tatasusunan dengan lebih mudah, menjadikan pembangunan program lebih fleksibel dan cekap.

Fungsi purata tatasusunan PHP termasuk: 1. array_sum(), yang digunakan untuk mengira jumlah semua nilai dalam tatasusunan Untuk mengira purata, anda boleh menambah semua nilai dalam tatasusunan dan kemudian membahagi dengan bilangan elemen tatasusunan; 2, array_reduce(), digunakan untuk mengulang tatasusunan dan mengira setiap nilai dengan nilai awal 3. array_mean(), digunakan untuk mengembalikan purata tatasusunan, mula-mula mengira jumlah tatasusunan, dan hitung bilangan elemen tatasusunan, kemudian Jumlahnya dibahagikan dengan bilangan elemen tatasusunan untuk mendapatkan purata.

Fungsi yang PHP gunakan untuk menentukan sama ada tatasusunan kosong ialah fungsi "kosong()" dan fungsi "kira()". 1. Fungsi "empty()" digunakan untuk menentukan sama ada pembolehubah kosong, termasuk menentukan sama ada tatasusunan kosong ialah "empty($variable)" 2. Fungsi "count()" digunakan untuk count arrays. Bilangan elemen, sintaksnya ialah "count($array)".
