#include <stdio.h>
#include <math.h>
int main(){
long x,y,y2; //k用来记录x*x中不重复出现的数字个数
int p[10],i,k,t,num=0; //num用来记录一行输出的个数
//开始遍历x所有可能的结果
for(x=10000;x<sqrt(987654321);x++){
//遍历每一个可能的9位数(已存入数组中)
for(i=1;i<=9;i++){
p[i]=1; //数组p所有元素初值设为1
}
y2=y=x*x;
k=0;
for(i=1;i<=9;i++){
t=y2%10; //t为x上的每一位数
y2=y2/10;
if(p[t]==1){ //说明这个数第一次出现
k++; //计数加一
p[t]=0; //出现过一次后就将该位变为0
}
}
if(k==9){ //说明各个位数的数字都不相同满足要求
printf("%3d : %1d^2=%1d ",++num,x,y);
if(num%3==0) printf("\n"); //控制每行输出3个解
}
}
}
c语言: 求x的取值,使x的平方为各位数字不同的9位数。
猜你喜欢
转载自blog.csdn.net/KK_1657654189/article/details/120089757
今日推荐
周排行