(暴力枚举) UVa 10976 Fractions Again?!
2015-08-06 11:11
621 查看
(暴力枚举) UVa 10976 Fractions Again?!
题目:
输入一个k,让你求得所有的满足 1/k = 1/x + 1/y 的情况,并且打印出来 。
分析:
这是一道简单暴力枚举的题目。枚举对象: y (x可以根据k和y直接得出)
枚举范围: [ k + 1 , 2 * k ]
判断条件: 之前的想法是 ( int ) ( 1.0 / ( 1.0 / k - 1.0 / y ) ) == ( 1.0 / ( 1.0 / k - 1.0 / y ) ) // 当x为整数的时候满足条件,打印出来 。
后来想想这种精确度的东西肯定会出问题,所以还是不用这个了。
模拟分数之间的减法 当 ( k * y ) % ( y - k ) == 0 // 同样是说明了x的分子为1,即x为整数 。
实现代码:
#include <iostream> using namespace std; int xHub[10010]; int yHub[10010]; int main( int argc, char const *argv[] ) { int k; while ( cin >> k ) { int maxn = k << 1; int count = 0; for (int y = k + 1; y <= maxn; y++) { if ( (k * y ) % ( y - k ) == 0 ) { xHub[count] = (k * y ) / ( y - k ); yHub[count++] = y; } } cout << count << endl; for ( int i = 0; i < count; ++i ) { cout << "1/" << k << " = 1/" << xHub[i] << " + 1/" << yHub[i] << endl; } } return 0; }
相关文章推荐
- UVa 10986 Sending email (最短路+Dijkstra队列优化)
- poj3216Repairing Company 二分匹配之最小路径覆盖+floyd
- opencontrail本地编译定义标签
- Codeforces Round #Pi (Div. 2)567A Lineland Mail(模拟)
- tair分布式缓存
- 2015 Multi-University Training Contest 5 hdu 5348 MZL's endless loop
- http://blog.csdn.net/xiaanming/article/details/17483273
- Code Forces 567 A. Lineland Mail(水~)
- URAL 1031 Railway Tickets
- CodeForces 567A Lineland Mail 贪心
- 2015 HUAS Summer Trainning #4~C
- poj1273 Drainage Ditches(最大流)
- codeforces 538E E. Demiurges Play Again(博弈+树形dp)
- container-with-most-water
- 用行为树与状态机写AI
- Lineland Mail
- 2015 Multi-University Training Contest 6
- hdu 5348 MZL's endless loop 2015 Multi-University Training Contest 5
- CodeForces 567A-Lineland Mail
- A. Lineland Mail-水题-Codeforces Round #Pi (Div. 2)