void 民意调查比例法()
{//缘由https://bbs.csdn.net/topics/396521294?page=1#post-411408461从题目描述看:902/3~=300.7,1498/5~=299.6也就是大约求2个数的公约数,并使得这个公约数尽量求出最小误差?且商小于某值。int a = 0, aa = 0, xz = 0;cin >> a >> aa >> xz;double gy = a > aa ? a * 1.0 / aa : aa * 1.0 / a, qz = 0, jj = xz;aa = 1;while (xz > 0)if (++aa < xz)((qz = xz*1.0 / aa) >= gy && (qz -= gy) <= jj ? jj = qz, a = xz * 10 + aa : 0); else --xz, aa = 1;aa = a / 10; a %= 10;while (!(aa % 2) && !(a % 2))a /= 2, aa /= 2;cout << aa << ends << a;
}
把九九除法表当作数组使用查询最接近的值。