c++特殊自然数
最佳答案
程序参考:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int m, n, i, j, k, t, ct = 0;
int v[4]; //a=v[0],b=v[1],c=v[2],d=v[3]
cin >> m >> n; //输入m,n
if(m < 1000) m = 1000; //4位数最小1000
if(n > 9999) n = 9999; // 4位数最大9999
for(i = m; i <= n; i++)
{
t = i;
j = 3;
while(t) //得到个/十/百/千位
{
v[j--] = t % 10;
t /= 10;
}
if(i % 11 == 0) //条件一,11的倍数
{
t = 1;
for(j = 0; j < 4; j++) //判4个数相互是否相等
for(k = 0; k < 4; k++)
if(j != k && v[j] == v[k])
{
t = 0;
break;
}
if(t) // 条件二,4个数互不相等
{
if(v[1] + v[2] == v[0]) //条件三,b+c=a;
{
int s = v[1] * 10 + v[2]; //bc
int s1 = sqrt(s);
if(s1 * s1 == s) // 条件四,完全平方数
{
cout << i << " " ; //输出
ct++;
}
}
}
}
}
if(ct)
cout <<endl << ct << endl;
else
cout << "No Answer" << endl;
return 0;
}
其他回答
暂无其它回答!