猴子吃枣-杨辉三角-星星塔-公约数

11 篇文章 0 订阅
<?php



function monkeyEat1($d=1) {
	//$i第几天
	//$n第几天的枣子数
	for($i=10, $n=1; $i>=$d; --$i) {
		echo '第', $i, '天,有', $n, '个枣子<br>';
		//修改枣子数量
		if($i != $d) {
			//算前一天的数量
			$n = 2*$n+2;//2*($n+1)
		}
	}

	return $n;		
}
echo monkeyEat1(1);
echo '<hr>';

function monkeyEat2($d=1) {
	//出口
	if($d == 10) {
		echo '第', $d, '天,有', '1', '个枣子<br>';
		return 1;
	}
	//递归点
	$n = 2*(monkeyEat2($d+1)+1);
	echo '第', $d, '天,有', $n, '个枣子<br>';
	return $n;
}
echo monkeyEat2(1);



//function monkeyEat2($d=1) {
//	//出口
//	if($d == 10) {
//		return 1;
//	}
//	//递归点
//	return 2*(monkeyEat2($d+1)+1);
//}
//monkeyEat2(1);

echo '<hr>';
/**
 * @param $lines int 总行数
 */
function yanghui($lines) {
	echo '<table>';
	for($i=1; $i<=$lines; ++$i) {
		echo '<tr>';
		for($j=1; $j<=$i; ++$j) {
			echo '<td>';
			//第一列,对角线
			if($j==1 || $j==$i) {
				echo $data[$i][$j] = 1;//先赋值,再输出
			} else {
				echo $data[$i][$j] = $data[$i-1][$j] + $data[$i-1][$j-1];
			}
			echo '</td>';
		}
		echo '</tr>';
	}
	echo '</table>';
}
yanghui(100);

//
//				1	
//			1		1
//		1		2		1
//	1		3		3		1
//1		4		6		4		1
<?php

//确定行数
$lines = isset($_GET['l']) ? $_GET['l'] : 5;

//$line 表示行号
//$space = $lines-$line;//每行的前导空格
//$star = 2*$line - 1;//m每行的星星数量

//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo ' ';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		echo '*';
	}
	//输出换行
	echo "<br />";
}

echo '<hr>';
//在输出星星时,应该第一个和最后一个是星星,其他的是空格
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo ' ';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		//判断应该输出星星还是空格
		if($star==1 || $star==2*$line-1) {
			echo '*';
		} else {
			echo ' ';
		}
	}
	//输出换行
	echo "<br />";
}

echo '<hr>';
//在输出星星时,应该最后一行或者第一个和最后一个是星星,其他的是空格
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo ' ';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		//判断应该输出星星还是空格
		if($line==$lines || $star==1 || $star==2*$line-1) {
			echo '*';
		} else {
			echo ' ';
		}
	}
	//输出换行
	echo "<br />";
}


echo '<hr>';
//在输出星星时,应该第一个和最后一个是星星,其他的是空格
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo ' ';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		//判断应该输出星星还是空格
		if($star==1 || $star==2*$line-1) {
			echo '*';
		} else {
			echo ' ';
		}
	}
	//输出换行
	echo "<br />";
}
for($line=$lines-1; $line>=1; --$line) {
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo ' ';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		//判断应该输出星星还是空格
		if($star==1 || $star==2*$line-1) {
			echo '*';
		} else {
			echo ' ';
		}
	}
	//输出换行
	echo "<br />";
}
echo '<hr>';


//1	2	3	4	5	4	3	2	1
//-4	-3	-2	-1	0	1	2	3	4(数轴)
//4	3	2	1	0	1	2	3	4(绝对值)

for($i=-4; $i<=4; ++$i) {
	echo $i, '  ';
	echo abs($i), '  ';
	echo 5-abs($i);

	echo '<br>';
}
echo '<hr>';
for($i=-($lines-1); $i<=$lines-1; ++$i) {
	//计算$line
	$line = $lines - abs($i);
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo ' ';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		//判断应该输出星星还是空格
		if($star==1 || $star==2*$line-1) {
			echo '*';
		} else {
			echo ' ';
		}
	}
	//输出换行
	echo "<br />";
}

<?php

$m = isset($_GET['m']) ? $_GET['m'] : 12;
$n = isset($_GET['n']) ? $_GET['n'] : 8;


//判断mn的大小
if($m>$n) {
	$big = $m;
	$small = $n;
} else {
	$big = $n;
	$small = $m;
}

//循环,从小的开始,到 1
for($d=$small; $d>=1; --$d) {
	//判断是否可以整除
	if($small%$d==0 && $big%$d==0) {
		echo "$m, $n 的最大公约数为$d";
		break;
	}
}

//
//12 % 8  == 4
//8 % 4 == 0


//8 % 12 == 8;
//12 % 8 == 4;
//8 % 4 == 0;

echo '<hr>';
do {
	$mod = $m % $n;//取模
	//将原来的除数变成被除数
	$m = $n;
	//再将模数,变成除数
	$n = $mod;
} while($mod != 0);

echo '最大公约数为:', $m;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值