開發邏輯
取大於 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);
}
}