博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA - 10976 暴力枚举
阅读量:3904 次
发布时间:2019-05-23

本文共 715 字,大约阅读时间需要 2 分钟。

题意:

给定正整数k(1<=k <= 10000),找出所有正整数 x>= y, 使得1/k = 1/x + 1/y.

思路:

首先,x,y肯定为整数,所以x,y的取值范围不能小于k,即左区间为k+1,因为x>=y,1/x<=1/y,即1/k-1/y<=1/y,所以,1/k<=2/y,所以2k>=y,所以y的取值范围就出来了,[k+1,2*k];

代码如下:

#include 
#include
#include
#include
using namespace std;const int maxn=1e4+5;int k;int ans[maxn<<1][3];int main(){ while (scanf("%d",&k)!=EOF) { int cnt=0; for (int i=k+1;i<=2*k;i++) { if((k*i)%(i-k)) continue; int j=(k*i)/(i-k); if(j>=i) { ans[cnt][0]=k; ans[cnt][1]=j; ans[cnt][2]=i; cnt++; } } printf("%d\n",cnt); for (int i=0;i

 

转载地址:http://bwoen.baihongyu.com/

你可能感兴趣的文章
WinForm 获取文件/文件夹对话框
查看>>
PyCharm打包.exe遇到的问题
查看>>
winform中添加Windows Media Player
查看>>
345. 反转字符串中的元音字母
查看>>
67. 二进制求和
查看>>
125. 验证回文串
查看>>
168. Excel表列名称
查看>>
400. 第N个数字
查看>>
209. 长度最小的子数组
查看>>
145. 二叉树的后序遍历
查看>>
2. 两数相加
查看>>
3. 无重复字符的最长子串
查看>>
5. 最长回文子串
查看>>
4. 两个排序数组的中位数
查看>>
10. 正则表达式匹配
查看>>
23. 合并K个元素的有序链表
查看>>
32. 最长有效括号
查看>>
6. Z字形转换
查看>>
8. 字符串转整数(atoi)
查看>>
12. 整数转罗马数字
查看>>