当前位置: 首页 > article >正文

分数之和(题解)

主要意思:

很简单,就是这四个自然数的倒数之和等于1(1/p+1/q+1/r+1/s)

主要思路:

既然这四个自然数都不知道,就可以都枚举,需要4重循环
枚举就要确定对象,范围,条件:

①对象:p,q,r,s

②范围:p≤q≤r≤s(题目已知)

但我们在枚举p的时候,并不知道q取几

所以,我们要去算出p,q,r,s的范围

这4个是自然数所以是非负整数(整数和0)

因为除数不为0,所以这4个大于1

如果其中有一个数是1,那么其他数的倒数就得0,而题目中说不重复,所以这4个大于1

1.p最小取2,最大取4(因为当p=q=r=s时,各取4,满足条件);

2.q最小取p,最大取6(因为要保证q最大,那么1/q就小,1/p的值就大,所以p取2,1/p=1/2,1-1/2=1/2;当q=r=s时,1/2/3=1/6;各取4,满足条件)

3.r最小取q,最大取12(因为要保证r最大,那么1/r最小,1/p和1/q的值就大,所以p取2且q取,这里不知道取多少,那就在p的范围里找,不能取2,最大值就是3,1/p=1/2,1/q=1/3,1-1/2-1/3=1/6;当r=s时,1/6/2=1/12;各取12,满足条件)

4.s最小取r,最大取42(因为要保证s最大,那么1/s最小,1/p和1/q和1/r的值就大,所以p取2且q取,这里不知道取多少,那就在p的范围里找,不能取2,最大值就是3,r取-;这里不知道取多少,那就在q的范围里找,不能取6,值可以是7;1/p=1/2,1/q=1/3,1-1/2-1/3=1/6;1/6-1/7=1/42,满足条件)

③条件:1/p+1/q+1/r+1/s=1

题解:

#include <bits/stdc++.h> 
int main(){
	for(int p=2;p<=4;p++){
		for(int q=p;q<=6;q++){
			for(int r=q;r<=12;r++){
				for(int s=r;s<=42;s++){
					if(q*r*s+p*r*s+p*q*s+p*q*r==p*q*r*s){
						cout<<p<<" "<<q<<" "<<r<<" "<<s<<endl; 
					}
				} 
			}
		} 
	}
	return 0;
} 


http://www.kler.cn/a/517465.html

相关文章:

  • c经典题目
  • HTML一般标签和自闭合标签介绍
  • windows11关闭系统更新详细操作步骤
  • 【已解决】OSS配置问题
  • SpringBoot开发(三)SpringBoot介绍、项目创建、运行
  • 闲鱼自动抓取/筛选/发送系统
  • 无人机的应用场景有哪些?
  • gesp(C++六级)(1)洛谷:P10250:[GESP样题 六级] 下楼梯
  • Java面试题2025-Spring
  • 【C语言】结构体与共用体深入解析
  • Django创建纯净版项目并启动
  • RNN实现阿尔茨海默症的诊断识别
  • 通过 Visual Studio Code 启动 IPython
  • 在K8S中,Keepalived是如何检测工作节点是否存活的?
  • redis常用命令和内部编码
  • 使用Cline+deepseek实现VsCode自动化编程
  • 51单片机——按键控制LED流水灯
  • 深度学习利用数据加载、预处理和增强数据提高模型的性能
  • C++ lambda表达式
  • Java编程语言:从入门到进阶的全面指南
  • 数仓的数据加工过程-ETL
  • 《探秘鸿蒙Next:非结构化数据处理与模型轻量化的完美适配》
  • 总结8..
  • Qt —— 控件属性(二)
  • C++的new和delete
  • C#集合排序的三种方法(List<T>.Sort、LINQ 的 OrderBy、IComparable<T> 接口)