跳到主要内容

求黑色球白色球各多少

问题描述

规则:白黑黑白黑黑黑黑白黑黑黑黑黑黑黑黑白... 黑色的数量:2(2^1) 4(2^2) 8(2^3)

  • 问题1:前200个珠子中有多少个黑色的?
  • 问题2:程序实现计算n个珠子的黑色数目及白色数目?
function findWhileAndBlack($n) {
$while = $black = $whileCount = $blackCount = 0;
$isWhile = $isBlack = false;
for ($a = 1; $a <= $n; $a++) {
if ($a == 1) {
$isWhile = true;
$while = 1;
$black = pow(2, $while);
} else {
if ($black > 0) {
$isBlack = true;
$isWhile = false;
$black--;
} else {
$isWhile = true;
$isBlack = false;
$while ++;
$black = pow(2, $while);
}
}
if ($isWhile) {
echo '白';
$whileCount +=1;
} elseif ($isBlack) {
echo '黑';
$blackCount +=1;
}
}
printf("\n白色 = %d 黑色 = %d\n", $whileCount, $blackCount);
}