Rumah pembangunan bahagian belakang tutorial php 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数_PHP

约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数_PHP

Jun 01, 2016 pm 12:17 PM
tatasusunan php penunjuk dalaman

来看看这个问题的详细描述:
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~

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan tatasusunan PHP untuk menjana dan memaparkan carta dan graf statistik Cara menggunakan tatasusunan PHP untuk menjana dan memaparkan carta dan graf statistik Jul 15, 2023 pm 12:24 PM

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 imej Cara menggunakan tatasusunan PHP untuk menjana tayangan slaid dinamik dan paparan imej Jul 15, 2023 pm 01:17 PM

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 Cara menggunakan tatasusunan PHP untuk melaksanakan log masuk pengguna dan fungsi pengurusan kebenaran Jul 15, 2023 pm 08:55 PM

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

Bagaimana untuk menentukan berapa banyak tatasusunan yang terdapat dalam php Bagaimana untuk menentukan berapa banyak tatasusunan yang terdapat dalam php Aug 04, 2023 pm 05:40 PM

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.

Penerokaan teknik pengoptimuman prestasi untuk tatasusunan PHP Penerokaan teknik pengoptimuman prestasi untuk tatasusunan PHP Mar 13, 2024 pm 03:03 PM

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.

Apakah pasangan nilai kunci tatasusunan php? Apakah pasangan nilai kunci tatasusunan php? Aug 03, 2023 pm 02:20 PM

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.

Apakah fungsi untuk purata tatasusunan dalam php? Apakah fungsi untuk purata tatasusunan dalam php? Jul 17, 2023 pm 04:03 PM

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.

Apakah fungsi dalam PHP untuk menentukan sama ada tatasusunan kosong? Apakah fungsi dalam PHP untuk menentukan sama ada tatasusunan kosong? Aug 03, 2023 pm 05:15 PM

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)".

See all articles