php怎么怎么用*号做一个等腰三角形

如题所述

问题不难,给你两个版本,一个是在页面中输出的,一个是在命令行输出的:

    页面输出版本,注意,这里为了看起来更加完美,“*”外面使用了<span />进行包装,并设置了样式,同时,空白区域也是使用<span />进行输出的,这样的目的是使用样式控制显示效果:

function printTriangle($len, $char='*') {

$offset = 0;

if ($len % 2 == 0) {

$offset = ceil($len / 2) + 1;

} else {

$offset = ceil(($len - 1) / 2) + 1;

}

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

echo str_repeat('<span style="display: inline-table; width: 10px; height: 10px;">&nbsp;</span>', $len - $i);

echo str_repeat('<span style="display: inline-table; width: 20px; height: 10px; text-align: center;">'.$char.'</span>', $i);

echo '<br />';

}

}

}

2. 命令行版本:注意,输出的星号($char)应该使用全角符号,保证占用两个基本空格的宽度,而空格只是占用半个全角的宽度:

function printTriangle($len, $char='×') {

$offset = 0;

if ($len % 2 == 0) {

$offset = ceil($len / 2) + 1;

} else {

$offset = ceil(($len - 1) / 2) + 1;

}

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

echo str_repeat(' ', $len - $i);

echo str_repeat($char, $i);

echo PHP_EOL;

}

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-08
int main()
{
int i,j;
for(i=1;i<=N;++i)
{
for(j=0;j<N+i-1;++j)
{
if(j<N-i)
printf("\40");
else
printf("*");
}
printf("\n");
}
return 0;
}
相似回答