跳到主內容

開發邏輯

取大於 15 偶數值

PHP

<?php
$random_array = [];
for ($i = 0; $i < 100000; $i++) {
  $random_array [] = rand(0, 100000);
?>

C#

        int[] randomArray = new int[100000];
        for (int i = 0; i < randomArray.Length; i++)
        {
            randomArray[i] = random.Next(0, 100001);
        }

請寫出篩選 $random_array 中值大於 15 且值為偶數的程式碼。

PHP

$filtered_array = array_filter($random_array, function($value) {
    return $value > 15 && $value % 2 === 0;
});

C#

        var filteredArray = randomArray.Where(value => value > 15 && value % 2 == 0).ToArray();

依據邏輯運算判斷,以下邏輯順序何者更佳?

  • a: 值 > 15 且值是偶數。
  • b: 值是偶數且值 > 15。
  • c: 一樣。

最佳答案:a

原因:

  • 先判斷 值 > 15 可以減少對不必要資料進行偶數檢查的次數,因為如果值小於等於 15,直接跳過,無需進一步判斷是否為偶數。在處理大量資料時,這樣可以提升效能。
  • 效率考量:邏輯判斷的順序影響運算效能。當資料量大時,先判斷 值 > 15,可以快速排除一部分不符合條件的資料,減少對每個數值是否為偶數的檢查次數。因此,這樣的邏輯順序在處理大量資料時是更有效率的選擇。


打印星形金字塔

   *
  ***
 *****
*******

PHP

<?php
function printStarPyramid($n) {
    for ($i = 1; $i <= $n; $i++) {
        echo str_repeat(" ", $n - $i); // 打印空格
        echo str_repeat("*", 2 * $i - 1); // 打印星星
        echo "\n";
    }
}

printStarPyramid(4);
?>

C#

using System;

class Program
{
    static void PrintStarPyramid(int n)
    {
        for (int i = 1; i <= n; i++)
        {
            Console.Write(new string(' ', n - i)); // 打印空格
            Console.WriteLine(new string('*', 2 * i - 1)); // 打印星星
        }
    }

    static void Main()
    {
        PrintStarPyramid(4);
    }
}

打印乘以 2 的 Pascal 三角形

PHP

<?php
function printPascalTriangle($rows) {
    for ($i = 0; $i < $rows; $i++) {
        $number = 1; // Pascal 起始數字
        echo str_repeat(" ", $rows - $i - 1); // 打印空格
        for ($j = 0; $j <= $i; $j++) {
            echo $number * 2 . " "; // 每個數字乘以 2
            $number = $number * ($i - $j) / ($j + 1); // 計算下一個 Pascal 數字
        }
        echo "\n";
    }
}

printPascalTriangle(6);
?>

C#

using System;

class Program
{
    static void PrintPascalTriangle(int rows)
    {
        for (int i = 0; i < rows; i++)
        {
            int number = 1;
            Console.Write(new string(' ', rows - i - 1)); // 打印空格

            for (int j = 0; j <= i; j++)
            {
                Console.Write(number * 2 + " "); // 每個數字乘以 2
                number = number * (i - j) / (j + 1); // 計算下一個 Pascal 三角形數字
            }
            Console.WriteLine();
        }
    }

    static void Main()
    {
        PrintPascalTriangle(6);
    }
}