UVa10976 Fractions Again?!(分数拆分)

news/2024/5/18 5:22:09 标签: 枚举

1、题目

在这里插入图片描述

2、题意

输入正整数 k k k,找到所有正整数 x ≥ y x \ge y xy,使得 1 k = 1 x + 1 y \frac{1}{k} = \frac{1}{x} + \frac{1}{y} k1=x1+y1

3、分析

既然要求找出所有的 x , y x,y x,y枚举对象自然是 x , y x,y x,y了。可问题在于,枚举的范围如何?从 1 / 12 = 1 / 156 + 1 / 13 1/12 = 1/156 + 1/13 1/12=1/156+1/13 可以看出, x x x 可以比 y y y 大很多。难道要无休止枚举下去?当然不是。由于 x ≤ y x \le y xy,有 1 x ≤ 1 y \frac{1}{x} \le \frac{1}{y} x1y1,因此 1 k − 1 y ≤ 1 y \frac{1}{k} - \frac{1}{y} \le \frac{1}{y} k1y1y1,即 y ≤ 2 k y \le 2k y2k。这样,只需要在 2 k 2k 2k 范围之内枚举 y y y,然后根据 y y y 尝试计算出 x x x 即可。

4、代码实现

#include<cstdio>
#include<vector>
using namespace std;

int main() {
	int k;
  	while(scanf("%d", &k) == 1 && k) {
    vector<int> X, Y;
    for(int y = k+1; y <= k*2; y++) {
      // 1/k = 1/x + 1/y => x = ky/(y-k)
      if(k*y%(y-k) == 0) { 
      	X.push_back(k*y/(y-k)); 
      	Y.push_back(y); 
      }
    }
    printf("%d\n", X.size());
    for(int i = 0; i < X.size(); i++)
      printf("1/%d = 1/%d + 1/%d\n", k, X[i], Y[i]);
  	}
  	return 0;
}

http://www.niftyadmin.cn/n/5136508.html

相关文章

VPN与IP代理用哪个好?有何区别?

当谈到网络安全和IP变更时&#xff0c;人们会想到VPN和IP代理服务器。很多人很困惑&#xff0c;它们之间有什么区别&#xff0c;应该选择哪一个呢&#xff1f;这取决于您的需求来决定哪一个更好。 一、什么是VPN与IP代理&#xff1f; VPN 是虚拟专用网络 (Virtual Private Net…

前端知识体系概要

前端知识体系 1、JavaScript语言新发展 linux前端开发必备 JavaScript语言发展与PHP JavaScript函数式编程与测试 2、NodeJS Express、KOA1&2基础与实践 NodeJS核心API与源码 HTTP协议、腾讯地图Node架构设计 3、前端工程化与持续构建 FIS、…

基于SpringBoot的党员教育和管理系统的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 党员信息管理 党费登记管理 奖惩记录管理 公告信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面…

EKP模板设置使用JSP片段,实现点击查询按钮弹出dialog.iframe弹出框,实现查询页面

参考JSP页面 <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %> <% include file"/sys/ui/jsp/common.jsp" %> <%page import"com.landray.kmss.util.ResourceUtil" %&…

学习计划模版

学习目标&#xff1a; 提示&#xff1a;这里可以添加学习目标 例如&#xff1a; 一周掌握 Java 入门知识 学习内容&#xff1a; 提示&#xff1a;这里可以添加要学的内容 例如&#xff1a; 搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句 学习时间&#x…

二、PHP伪协议

一、PHP伪协议 php://filter&#xff1a;用于对流进行各种过滤或转换操作&#xff0c;可以作为一个中间流来处理其他流&#xff0c;可以进行任意文件的读取 // base64编码 //格式&#xff1a;php://filter/处理函数/resource资源路径 $data file_get_contents(php://filter/co…

Tomcat简介 安装 站点部署 多实例配置 反向代理

一、Tomcat简介二 、Tomcat帮手 --- JDK安装jdk检查jdk是否安装成功 三.安装TomcatTomcat配置管理页面 四、web站点部署五、部署开源站点&#xff08;jspgou商城&#xff09;安装数据库 六、 jspgou商城上线配置数据库连接 七、Tomcat多实例配置复制程序文件浏览器访问 八、Tom…

初识Java 16-3 字符串

目录 扫描输入&#xff08;Scanner&#xff09; Scanner的分隔符 使用正则表达式扫描 StringTokenizer 本笔记参考自&#xff1a; 《On Java 中文版》 扫描输入&#xff08;Scanner&#xff09; 先看看在Scanner类加入之前&#xff0c;Java是如何处理文件或标准输入的&…