如何解决php中的Str_pad问题
我正在尝试执行乘法运算,但我无法使用str_pad格式化,但我无法使用这种格式 举个例子,如果我在尝试乘法。421乘675如何解决php中的Str_pad问题,php,Php,我正在尝试执行乘法运算,但我无法使用str_pad格式化,但我无法使用这种格式 举个例子,如果我在尝试乘法。421乘675 I want to do exactly in this format 4 2 1 x 6 7 5 __________ 2 1 0 5 2 9 4 7 x 2 5 2 6 x x ________________ 2 8 4 1 7 5 但是填充有一个问题,我无法在stru pad中显示
I want to do exactly in this format
4 2 1
x 6 7 5
__________
2 1 0 5
2 9 4 7 x
2 5 2 6 x x
________________
2 8 4 1 7 5
但是填充有一个问题,我无法在stru pad中显示这些x
,当我使用这种格式时,它工作不正常。
它是这样显示的
这是密码
$multiplier = 421;
$multiplicand = 675;
$result = $multiplier * $multiplicand;
$pad_max = strlen($result);
$multiplicand_values = str_split($multiplicand);
echo str_pad($multiplier, $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
echo "<br/>";
echo str_pad("x" . $multiplicand, $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
echo "<br/>";
echo str_pad("-", $pad_max, "-", STR_PAD_LEFT) . PHP_EOL;
echo "<br/>";
for($i = 0; null !== ($digit = array_pop($multiplicand_values)); ++$i)
{
echo str_pad($multiplier * $digit * pow(1, $i), $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
echo "<br/>";
}
echo "<br/>";
echo str_pad("-", $pad_max, "-", STR_PAD_LEFT) . PHP_EOL;
echo "<br/>";
echo str_pad($result, $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
$multiplier=421;
$被乘数=675;
$result=$multiplier*$multiplier;
$pad_max=strlen($result);
$multipliand_values=str_split($multipliand);
echo str_pad($multiplier,$pad_max,“,str_pad_LEFT)。PHP_EOL;
回声“
”;
echo str_pad(“x”。$被乘数,$pad_max,”,str_pad_左)。PHP_EOL;
回声“
”;
echo str_pad(“-”,$pad_max,“-”,str_pad_LEFT)。PHP_EOL;
回声“
”;
对于($i=0;null!==($digit=array_pop($被乘数_值));++$i)
{
echo str_pad($multiplier*$digit*pow(1,$i),$pad_max,“,str_pad_LEFT);
回声“
”;
}
回声“
”;
echo str_pad(“-”,$pad_max,“-”,str_pad_LEFT)。PHP_EOL;
回声“
”;
echo str_pad($result,$pad_max,“,str_pad_LEFT)。PHP_EOL;
您只需尝试:
要获取此输出,请执行以下操作:
4 2 1
x 6 7 5
___________
2 1 0 5
2 9 4 7 x
2 5 2 6 x x
___________
2 8 4 1 7 5
你需要把单词分开。我用过:
$multiplier=421;
$被乘数=675;
$result=$multiplier*$multiplier;
$pad_max=strlen(word_Wrap($result));
$multipliand_values=str_split($multipliand);
echo sprintf(“%${pad_max}s”,word_Wrap($multiplier))“
”;
echo sprintf(“%${pad_max}s”,word_Wrap(“x”。$multipland))。“
”;
回声重复序列(“u”,最大$pad_)。”
;
对于($i=0;null!==($digit=array_pop($被乘数_值));++$i)
{
$value=$multiplier*$digit*pow(1,$i);
$xValue=str_repeat(“x”,即$i);
echo sprintf(“%${pad_max}s”,word_Wrap($value.$xValue))。“
”;
}
回声重复序列(“u”,最大$pad_)。”
;
回显单词包装($result);
函数字_Wrap($value){
返回wordwrap($value,1,“,true);
}
如果HTML中有多个空格,浏览器将忽略空格。您需要使用和单空格字体。或者使用
我可以使用css,但它不会响应,因此它只是一个注释;)但是如果没有它,你将无法看到你的代码是否有效。@MichałSznurawa我给出了一个屏幕截图,因为我的格式有问题。我在问题中再次发布了一个屏幕截图,然后你可以看到problem@thamilian答案2105的第一行向右移动。我想转到左边请检查问题中的屏幕截图@thamilan@modgeek我得到了格式:让我们。
421
x675
______
2105
2947x
2526xx
______
284175
4 2 1
x 6 7 5
___________
2 1 0 5
2 9 4 7 x
2 5 2 6 x x
___________
2 8 4 1 7 5
$multiplier = 421;
$multiplicand = 675;
$result = $multiplier * $multiplicand;
$pad_max = strlen(word_Wrap($result));
$multiplicand_values = str_split($multiplicand);
echo sprintf("%${pad_max}s", word_Wrap($multiplier))."<br/>";
echo sprintf("%${pad_max}s", word_Wrap("x".$multiplicand))."<br/>";
echo str_repeat("_", $pad_max)."<br/>";
for($i = 0; null !== ($digit = array_pop($multiplicand_values)); ++$i)
{
$value = $multiplier * $digit * pow(1, $i);
$xValue = str_repeat("x", $i);
echo sprintf("%${pad_max}s", word_Wrap($value.$xValue))."<br/>";
}
echo str_repeat("_", $pad_max)."<br/>";
echo word_Wrap($result);
function word_Wrap($value) {
return wordwrap($value, 1, " ", true);
}