求同时满足以下条件的所有三位正整数
1该数是某个两位数的平方
2该数的个 十 百位数各不相同
3该数的个 十 百位数按升序排列
要求将判断整型数是否满足条件1设计为f1函数,是否满足条件2和条件3设计为f2函数。在主函数中调用以上函数,输出满足所有条件的三位数及条件1中对应的两位数。
平方就是开根号后再相乘等于该数,或者遍历所有两位数进行相乘,等于这个数就OK
2,3需要把三位数分解出来,进行判断
#include <iostream>
using namespace std;
int f1(int n)
{
for(int i=10;i<100;i++)
{
if(i*i == n)
return i;
if(i*i>n)
break;
}
return 0;
}
int f2(int n)
{
int a = n/100;
int b = n/10%10;
int c = n%10;
if(a==b || b==c || a==c)
return 0;
if(a<b || b<c)
return 0;
return 1;
}
int main()
{
for(int i=100;i<1000;i++)
{
int x = f1(i);
int y = f2(i);
if(x != 0 && y != 0)
cout<<i<<","<<x<<endl;
}
return 0;
}