php实现九九乘法表

不对齐版本

<?php
// 九九乘法表
for ($i = 1; $i <= 9; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        // 输出乘法表达式和结果,使用 endspace 进行格式化以便对齐
        echo "$j x $i = " . ($j * $i) . "\t";
    }
    // 输出换行符,开始新的一行
    echo "\n";
}
?>

对齐版本

<?php
// 九九乘法表,精确对齐版本,使用预计算的每行最大宽度
$maxWidthPerRow = 0;
// 预先计算每行的最大宽度(这里我们简化为基于9x9的结果加上表达式和额外空格的宽度)
$exprTemplate = '%dx%d=';
$maxResult = 9 * 9;
$maxWidthPerRow = strlen(sprintf($exprTemplate, 9, 9)) + strlen((string)$maxResult) + 3; // +3 是为了表达式、结果和它们之间的空格

for ($i = 1; $i <= 9; $i++) {
    $line = '';
    for ($j = 1; $j <= $i; $j++) {
        $expr = sprintf($exprTemplate, $j, $i);
        $result = $j * $i;
        // 使用 str_pad 对条目进行格式化,确保它们对齐
        $line .= str_pad($expr . ' ' . $result, $maxWidthPerRow, ' ', STR_PAD_RIGHT);
    }
    // 输出整行,并换行
    echo rtrim($line) . "\n"; // 在这里rtrim实际上不会去除任何空格,因为我们是用str_pad填充到固定宽度的
}
?>

我的个人PHP项目:

PHP搜索引擎 WindSearch: https://github.com/rock365/windsearch
WindSearch在线开发文档:https://rock365.github.io/ 偶尔无法访问,多刷新几次就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值