问题描述
我要分析一些伪代码:
/home
从该函数中,我知道public static void test(float z) {
float y = 0;
for (float i = 1; i <= z; i++) {
if (y < z) {
y = 4 * i * i + 6;
}
}
return y;
}
时y = 4i^2 + 6
。但是,我在捕获方程中y和z之间的关系时遇到了麻烦。我觉得它可以作为下限函数(阶跃函数)捕获-对于z中的一定范围的数字,y将具有该指定值。
解决方法
y
对于第一个z
变得大于i
(并且停止更改),使得2*i^2 + 3 > z
。换句话说,最小的i > sqrt((z - 3) / 2)
是floor(sqrt((z - 3)/2)) + 1
。现在您知道了i
,请计算y
。