在循环语句中,常见的语句包括 while() for() do...while() ,判断语句 if switch ()
其中,主要使用的是while() 和 for() ,do...while 不过是while的一个变种。
利用程序来解决 多元求值得问题,一般是通过穷举法,我们不需要知道最后的解有几种情况而快速得到答案。
我们假设 如果存在 i ,j,k 三个变量 。我们每 while 或者for 一次,便把一个未知量当作了已知量。
且三个变量和为100
例如 for(i=0; ;i++)
{
//此时则 i 可作为已知量
for(j=0; ;j++) //j 作为已知量
{
for(k=0;;k++) //K作为已知量
{
if( 100-i-j-k==0) //中间是一个判断 用于跳出循环
{
printf(" %d%d%d\n",i,j,k); //输出 解
}
}
}
}
当然 while( i ) i可作为内部的一个已知量也可单纯用来控制循环次数 。
循环求值最关键的是知晓 “边界” 在哪里,在嵌套的两层循环中间,一定要慎重的赋值,不恰当的赋值会导致循环得不到正确的结果。
可以在两层循环中间判断 if ,通过if 的判断 进入下一层循环,这样也减少了循环次数,节省时间空间。每一次循环,时间空间复杂度O成指数上涨。 在最后一层中再次判断或计算得出结果。
我们在执行循环之前,应该尽量简化公式,以最小的代价进入循环,通常这种循环得到的结果往往更好