2013-02-04 19 views
12

गूंजें मैं PHP के लिए नया हूं और आवश्यक कोड की मात्रा को कम करने के दौरान निम्नलिखित बनाने की कोशिश कर रहा हूं। PHP को 100 की एक सूची दिखानी चाहिए, यदि संख्या 3, 5 या 3 और 5 के द्वारा प्रदर्शित की जाती है। यदि किसी के द्वारा नहीं तो कुछ भी दिखाएं।PHP - यदि संख्या 3 और 5 से विभाजित है तो

यही वह है जो मुझे अब तक मिला है, लेकिन 3 से 5 बिट के बारे में सुनिश्चित नहीं होने के बाद से कोई भी मदद महान होगी क्योंकि आप नीचे देख सकते हैं।

<?php $var = range(0, 100); ?> 
    <table> 
<?php foreach ($var as &$number) { 
echo " <tr> 
    <td>$number</td> 
    <td>"; 

    if($number % 3 == 0) { 
    echo "BY3"; 
} elseif ($number % 5 == 0) { 
    echo "BY5"; 
} elseif ($number % 3 and 5 == 0) { 
     echo "BY3 AND 5"; 
} 
echo "</td></tr>"; 
} 
?> 

    </table> 

धन्यवाद

+1

मुझे याद दिलाता है [ProjectEuler समस्या 1] (https://projecteuler.net/problem=1) – HamZa

+0

यह मैं FizzBuzz समस्या की याद दिलाता है, ProjectEuler # 1 इस प्रश्न की तुलना में एक बेहेमोथ है। – hijarian

उत्तर

20

नहीं ... आप पहले की जाँच करनी चाहिए अगर यह 15 (3x5) के लिए divisble (या 3 और 5) और आप अन्य जांच कर सकते हैं के बाद:

if($number % 15 == 0) { 
    echo "BY3 AND 5"; 
} elseif ($number % 5 == 0) { 
    echo "BY5"; 
} elseif ($number % 3 == 0) { 
    echo "BY3"; 
} 
echo "</td></tr>"; 

?> 

क्योंकि 15 के लिए विभाजित प्रत्येक संख्या भी 3 और 5 के लिए विभाजित होती है। इसलिए आपकी आखिरी जांच कभी भी

4

अगर मैं आपके सवाल का सही पढ़ रहा हूँ तो आप देख रहे हैं:

if ($number % 3 == 0 && $number %5 == 0) { 
     echo "BY3 AND 5"; 
} elseif ($number % 3 == 0) { 
    echo "BY3"; 
} elseif ($number % 5 == 0) { 
    echo "BY5"; 
} 

वैकल्पिक संस्करण:

echo ($number % 3 ? ($number % 5 ? "BY3 and 5" : "BY 3") : ($number % 5 ? "BY 5" : "")); 
+4

आप कभी तीसरे सशर्त नहीं होंगे ... यह सच होने के लिए, पहले दो में से एक भी होना चाहिए। – JAAulde

+0

धन्यवाद @JAAulde मैंने अपडेट किया और एक लाइनर भी जोड़ा – Neo

1

अद्यतन कोड

नीचे दिए गए के रूप में

<?php $var = range(0, 100); ?> 
<table> 
<?php foreach ($var as &$number) 
{ 
echo " <tr> 
<td>$number</td> 
<td>"; 

if($number % 3 == 0 && $number % 5 == 0) 
{ 
    echo "BY3 AND 5"; 
} 
elseif ($number % 5 == 0) 
{ 
echo "BY5"; 
} 
elseif ($number % 3 == 0) 
{ 
    echo "BY3"; 
} 
echo "</td></tr>"; 
} 
?> 

+1

आप कभी तीसरे सशर्त नहीं होंगे ... यह सच होने के लिए, पहले दो में से एक भी होना चाहिए। – JAAulde

+0

ooops अब – Deep123

1
<?php 

if($number % 5 == 0 && $number % 3 == 0) { 
    echo "BY3 AND 5"; 
} elseif ($number % 5 == 0) { 
    echo "BY5"; 
} elseif ($number % 3 == 0) { 
    echo "BY3"; 
} else{ 
    echo "NOT BY3 OR 5"; 
} 
?> 
+0

अपडेट किया गया यह संचालन का उचित क्रम है, लेकिन इसे और सरल बनाया जा सकता है। – JAAulde

+0

@JAAulde: कैसे? –

+0

मेरे खराब ने संपादन के लिए धन्यवाद @JAAulde पुन: व्यवस्थित नहीं किया था! – Neo

1
if($number % 15 == 0) 
{ 
    echo "Divisible by 3 and 5"; 
} 
elseif ($number % 5 == 0) 
{ 
    echo "Divisible by 5"; 
} 
elseif ($number % 3 == 0) 
{ 
echo "Divisible by 3"; 
} 
2
$num_count = 100; 
    $div_3 = "Divisible by 3"; 
    $div_5 = "Divisible by 5"; 
    $div_both = "Divisible by 3 and 5"; 
    $not_div = "Not Divisible by 3 or 5"; 

    for($i=0;$i<=$num_count;$i++) 
    { 
     switch($i) 
     { 
      case ($i%15==0): 
      echo $i." (".$div_both.")</br>"; 
      break; 
      case ($i%3==0): 
      echo $i." (".$div_3.")</br>"; 
      break; 
      case ($i%5==0): 
      echo $i." (".$div_5.")</br>"; 
      break; 
      default: 
      echo $i."</br>"; 
      break; 
     } 
    } 
1

अगर बयान तीन करने के लिए कोई ज़रूरत नहीं:

echo "<table border='1'>"; 

for ($i = 1; $i <= 100; $i++) { 

    echo "<tr><td>{$i}</td><td>"; 

    if ($i % 3 == 0) echo "BY3 "; 
    if ($i % 5 == 0) echo "BY5"; 

    echo "</td></tr>\n"; 
} 
echo "</table>"; 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^