1.标题:平方十位数
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。
这其中也有很多恰好是平方数(是某个数的平方)。
比如:1026753849,就是其中最小的一个平方数。
请你找出其中最大的一个平方数是多少?
注意:你需要提交的是一个10位数字,不要填写任何多余内容。
答案:2081549376
#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
const int N = 10;
using namespace std;
typedef long long ll;
bool cmp (int a,int b)
{
return a>b;
}
int main()
{
int arr[N]={9,8,7,6,5,4,3,2,1,0};
do{
ll sum=0;
for(int i=0;i<=N-1;i++)
{
sum*=10;
sum+=arr[i];
}
int start = sqrt (sum);
if(start*start==sum)
{
cout<<sum;
return 0;
}
}while(next_permutation(arr,arr+N,cmp));
cout<<"can't find it";
return 0;
}