求教,逼近值问题

算法的要求是这样的,写一个C函数,有三个输入参数,first, second, diff.
要求函数能计算出一个数值result,这个result应该是second的最小整数倍,且与first的整数倍的差的绝对值在diff以内的,
比如,first为3.6,second为35,diff为0.5的情况下,那么result就应该为140.

因为
140 = 35(second)*4;
3.6*39 - 140 = 0.4
0.4 < 0.5
 
double getResult(const double first, const double second, const double diff );


求高手给出解决办法。

作者: poorbug   发布时间: 2011-06-08

用循环;
求mod,modulo;
判断。

作者: cnmhx   发布时间: 2011-06-08

while( abs(fmod(second, frist) > diff)) {
  second += second;
}

作者: qianyulang   发布时间: 2011-06-08