uva 10483(暴力)
2015-07-12 18:15
447 查看
题意:给出两个小数l,r,然后找到所有在[l,r]范围内的num满足
num = a + b + c = a * b * c
将结果从小到大输出。
题解:保证精度,将小数扩大100倍,枚举a,b,计算出c。
num = a + b + c = a * b * c
将结果从小到大输出。
题解:保证精度,将小数扩大100倍,枚举a,b,计算出c。
return x.sum < y.sum; if (fabs(x.a - y.a) > 1e-9) return x.a < y.a; if (fabs(x.b - y.b) > 1e-9) return x.b < y.b; return x.c < y.c; } int main() { while (scanf("%lf%lf", &l, &r) == 2) { int ll = l * 100, rr = r * 100, cnt = 0; for (int i = 1; i * i * i <= rr * 10000; i++) for (int j = i; j * j * i <= rr * 10000; j++) { if (i * j <= 10000 || ((i + j) * 10000) % (i * j - 10000)) continue; int k = (i + j) * 10000 / (i * j - 10000); if (k < j) continue; int sum = i + j + k; int mul = i * j * k; if (mul % 10000) continue; if (sum >= ll && sum <= rr && sum == mul / 10000) { res[cnt].sum = sum / 100.0; res[cnt].a = i / 100.0; res[cnt].b = j / 100.0; res[cnt++].c = k / 100.0; } } sort(res, res + cnt, cmp); for (int i = 0; i < cnt; i++) printf("%.2lf = %.2lf + %.2lf + %.2lf = %.2lf * %.2lf * %.2lf\n", res[i].sum, res[i].a, res[i].b, res[i].c, res[i].a, res[i].b, res[i].c); } return 0; }
相关文章推荐
- 横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 不起作用
- Linux命令之find(二)
- Linux高级文件系统管理之磁盘阵列简介
- 自定义表单样式之checkbox和radio
- 用实例详细讲解将PSD转成HTML&CSS
- jQuery -> bind / live / delegate 终结者 - on
- SpringMVC返回字符串类型Date实现方法
- javascript跨域访问探索之旅
- 2015.7.7js-07-2(基础)
- Web中树形数据(层级关系数据)的实现—以行政区树为例(二)
- uva 10479(找规律+递归)
- Binary String Matching
- 对CachedThreadPool OutOfMemoryError问题的一些想法
- 王阳明心学感悟1——勇敢地剖析自己的内心
- POJ【3687】Labeling Balls
- vmware11安装ubutnu15.10
- idea14配置tomcat
- 括号配对问题
- javascript变量声明提升
- Timer的缺陷 用ScheduledExecutorService替代