博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法竞赛】:分数拆分
阅读量:3703 次
发布时间:2019-05-21

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

题目

输入正整数K,找到所有的正整数x>=y,使得1/k = 1/x+1/y

样例输入:
2
12
样例输出:
这里写图片描述

思路:

对等式进行化简,然后得到K,x,y的一个关系式:

x = k*y/(y-k);
然后对y进行遍历,y肯定是大于k小于等于2*k,这个可以通过那个公式判断
然后遍历时候算出x,如果算出X为整数切X大于等于Y,则输出结果 = =

代码

// author:seen/// 算法竞赛_分数拆分#include 
using namespace std;int main(){ int k; while(cin>>k &&k){ for(int y=k+1;y<=2*k;y++){ float x= (float)k*y/(y-k); int temp =(int)x; //判断X是否为整数的一个方法 if(temp==x &&x>=y){ cout<
<<" "<
<<" "<
<

运行截图:

这里写图片描述

注:算出来的那三列数分别对应K, x, y

你可能感兴趣的文章
java NIO(二)----直接缓冲区和非直接缓冲区
查看>>
java NIO(三)----通道(Channel)
查看>>
java NIO(四)----阻塞IO与非阻塞IO
查看>>
java实现生成二维码
查看>>
Cookie
查看>>
Session
查看>>
Springboot项目集成jsp
查看>>
Vue的安装
查看>>
Oracle数据库错误Update数据恢复
查看>>
Sql Server数据库查询死锁和解决死锁
查看>>
Springboot项目实现自定义拦截器
查看>>
德鲁伊后台监控配置
查看>>
正向代理和反向代理
查看>>
Stream常用方法使用案例
查看>>
Log4j日志的配置文件
查看>>
Slf4j和logback日志组合
查看>>
Mysql的读写分离和主从复制过程概述
查看>>
Java中的synchronized与lock的区别
查看>>
基于Springboot注解形式进行模糊查询
查看>>
通用Sql返回自增长insert后的id
查看>>