前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2019秋PAT乙级真题】7-3 缘分数 (20 分)

【2019秋PAT乙级真题】7-3 缘分数 (20 分)

作者头像
韩旭051
发布2019-11-08 09:38:28
4520
发布2019-11-08 09:38:28
举报
文章被收录于专栏:刷题笔记刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/100634474

7-3 缘分数 (20 分)

所谓缘分数是指这样一对正整数 ab,其中 a 和它的小弟 a−1 的立方差正好是另一个整数 c 的平方,而 c 正好是 b 和它的小弟 b−1 的平方和。例如 8​3​​−7​3​​=169=13​2​​,而 13=3​2​​+2​2​​,于是 8 和 3 就是一对缘分数。

给定 a 所在的区间 [m,n],是否存在缘分数?

输入格式:

输入给出区间的两个端点 0<m<n≤25000,其间以空格分隔。

输出格式:

按照 a 从小到大的顺序,每行输出一对缘分数,数字间以空格分隔。如果无解,则输出 No Solution。

输入样例 1:

8 200

输出样例 1:

8 3

105 10

输入样例 2:

9 100

输出样例 2:

No Solution

代码语言:javascript
复制
#include<iostream>
#include<cmath>
using namespace std;
//a*a*a-(a-1)*(a-1)*(a-1)==(b*b+(b-1)*(b-1))*(b*b+(b-1)*(b-1));
int pingfang[100000];
int main(){
	for(int i=2;;i++){
		int p=i*i+(i-1)*(i-1);
		if(p>100000){
			break;
		}
		pingfang[p]=i;
	}
	int m,n;
	cin>>m>>n;
	int flag=0;
	for(int i=m;i<=n;i++){
		int p=i*i*i-(i-1)*(i-1)*(i-1);
		int s=p;
		p=sqrt(p);
		if(pingfang[p]!=0&&(sqrt(s)-p)<0.001){
		
			flag=1;
			cout<<i<<" "<<pingfang[p]<<endl;
		}
	}if(flag==0){
		cout<<"No Solution";
	}
	return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 7-3 缘分数 (20 分)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档