平方朋友对C++

给定一个正整数 n,我们规定如果两个正整数 A和 B 满足,对于任意 0≤i 例如,当 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
#include
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;
}

你可能感兴趣的:(c++,算法,数据结构)