hightruth Posted March 17, 2009 Share Posted March 17, 2009 İyi akşamlar arkadaşlar benim üç saat içinde yapıp sitemde yayınlamam gereken 9 tane php sorusu var... 8 ini yaptım ancak 9. soru çok karmaşık geldi...sorunun kodunu yapıp yollayabilecek bir arkadaş varmı? işte soru şöyle... 9) Roma'da kral 21 kişinin öldürülmesine karar veriyor. Cellat fazla yorulmamak için öldürülecek olanları çember biçiminde diziyor. Herkesin eline bir balta veriyor ve öldürme kuralı olarak da 2.Kişi 3.Kişiyi, 5.Kişi 6.kişiyi, .... , öldürüyor. Yani 2 Kişi atlanıp 3.Kişi öldürülüyor. Bu son iki kişi kalana kadar devam ediyor. Serbest kalacak bu son iki kişinin hangi numaralar olduğunu bulan programı yapınız. Yardımlarınızı bekliyorum arkadaşlar herkese iyi akşamlar... Link to comment Share on other sites More sharing options...
handesu Posted March 17, 2009 Share Posted March 17, 2009 Bu sorunun cevab1n1 bende istiyorumm.... banada cok ac1l laz1m Link to comment Share on other sites More sharing options...
Ahmet2009 Posted March 17, 2009 Share Posted March 17, 2009 Ben bunu kafamda düşündüm, while döngüsü kullanan üç tane fonksiyon yazman gerekiyor, birinci fonksiyonun while döngüsünün 21 kere dönmesi lazım. 2.fonksiyon 1.fonnksiyondan dönen degerleri, 3.fonksiyon 2. fonksiyondan dönen degerleri kullanması ve 1. ve 2.fonksiyonun dizi(ölmeyen sayılar) deger döndermesi ve her metodun sayaçla ölmeyen kişi adedini tutması gerekiyor. Fonksiyonlar tamamen aynı fakat, while döngüsüne giren kişiler azalıyor. 2.fonksiyonda while döngüsü, 1.fonksiyonda sag kalanlar kadar, 3.fonksiyonda while döngüsü 2.fonksiyonda sag kalanlar kadar dönmesi gerekiyor. Fonksiyonlarda yapacagın kontrol aynı. örnegin sayı üçe bölünüyorsa bu öldür anlamında oluyor, bölünmüyorsa öldürme anlamına geliyor. Öldürmediklerini diziye aktar ve onun için ayrı bir sayaç kullan. Bütün degişkenleri metod dışında tanımla. Link to comment Share on other sites More sharing options...
hightruth Posted March 17, 2009 Author Share Posted March 17, 2009 kardeş yardımın için sağol da bende aynı şeyi düşündüm ancak programa yazamadım pek whileden anlamıyorum açıkcası forla da olmuyor sanırım ne yapıcam gerçekten bilmiyorum. Link to comment Share on other sites More sharing options...
handesu Posted March 17, 2009 Share Posted March 17, 2009 kardeş yardımın için sağol da bende aynı şeyi düşündüm ancak programa yazamadım pek whileden anlamıyorum açıkcası forla da olmuyor sanırım ne yapıcam gerçekten bilmiyorum. Ya bu soru ben1mde bas1ma bela oldu cvp'i ben1m ac1l olarak bulamam gerekiyor.Ahmet tavs1yelerin için tskler ama bende higtruth'a kat1l1yorum.... Bende While ve forla yapmaya kalkt1m ama yapamad1m.. Link to comment Share on other sites More sharing options...
Ahmet2009 Posted March 17, 2009 Share Posted March 17, 2009 Valla arkadaşlar, uzun zamandır php ile uğraşmıyorum. php'nin yapısını unuttum. Konuları tekrar edip uygulamam lazım. O da bayağı zaman alır. Kafamda sadece algoritmasını kurabildim. Link to comment Share on other sites More sharing options...
cihad11 Posted March 17, 2009 Share Posted March 17, 2009 vay be ne soruymuŞŞ Link to comment Share on other sites More sharing options...
iso9001 Posted March 18, 2009 Share Posted March 18, 2009 Arkadaşlar banada bu sorunu cevabı laazım hemde acil bir şekilde bunu bana program halinde yazbilecek olan varmı?? Link to comment Share on other sites More sharing options...
M_AlBaTRoS Posted April 4, 2009 Share Posted April 4, 2009 Ben birşeyler yaptım ama hem emin değilim hemde biraz uykuluyum Keşke sonucun ne olduğunu da yazsaydınız neyse inş. doğrudur değilse de uydururuz bir şekilde artık <?php $KisiSayisi = 21; $Donus = 0; for($i = 1; $i <= $KisiSayisi; $i ++) { $Dizi [] = $i; } while ( $Donus < $KisiSayisi ) { $Dizi = KillIt ( $Dizi ); $Donus ++; } echo "<pre>"; print_r ( $Dizi ); echo "</pre>"; echo '<hr>'; function DiziDuzenle($D) { $Di = array (); foreach ( $D as $dd => $ddd ) { $Di [] = $ddd; } return $Di; } function KillIt($D) { $D = DiziDuzenle ( $D ); for($i = 1; $i < end ( $D ); $i = $i + 2) { unset ( $D [$i + 1] ); $i ++; } return $D; } ?> Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.