平方朋友对C++

发布时间:2024年01月12日

给定一个正整数 n,我们规定如果两个正整数 A和 B 满足,对于任意 0≤i<n,都可以通过在 A+i后面添加 3 位数字(具体添加什么可以自由选择)的方式得到 (B+i)2,则称 (A,B) 是平方朋友对。
例如,当 n=3 时,如果 A=73,B=272,则 (A,B) 平方朋友对,因73984=272^2 ,
74529=273^2,
75076=274^2
下划线部分即为添加的 3位数字)。
现在,给定两个正整数 n,MaxA,请你找到并输出所有满足 A≤MaxA 且 (A,B)是平方朋友对的 A,B。

输入格式
共一行,包含两个正整数 n,MaxA。

输出格式
如果不存在满足条件的 A,B,则输出 No Solution.否则,每行输出一对满足条件的 A,B,输出时优先输出 A 更小的数对,A相同时,优先输出 B更小的数对。

数据范围
1≤n≤100,
1≤MaxA≤10^6。

输入样例1:
3 85

输出样例1:
73 272
78 281
82 288
85 293

输入样例2:
4 100

输出样例2:
No Solution.

#include<iostream>
#include<math.h>
using namespace std;
int a,b;
int f(int b)
{
    return (b*b)/1000;
}
int main()
{
    int n,maxa,cnt=0;
    cin>>n>>maxa;
    for(b=32;b<=sqrt((maxa+n-1)*1000+999);b++)
    {
        a=f(b);
        int flag=1;
        for(int i=1;i<n;i++)
        {
            if((a+i)!=f(b+i))
            {
                flag=0;
                break;
            }
        }
        if(flag)
        {
            cnt++;
            cout<<a<<" "<<b<<endl;
        }
    }
    if(!cnt) cout<<"No Solution.";
    return 0;
}
文章来源:https://blog.csdn.net/qq_46380990/article/details/135556427
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。