#include<stdio.h>
#include<string.h>
int judge(int n)
{
int num = n;
int vis[10];
memset(vis, 0, sizeof(vis)); /*#include<string.h> 常用于数组的初始化, 将它的所有元素初始化为0 memset(f 数组名,0 要赋予的值 ,sizeof(f) 数组元素个数)*/
while(num)
{
int tmp = num % 10;
num /= 10;
if(vis[tmp])
return 0;
vis[tmp] = 1;
}
long long n1 = (long long)n * n;
while(n1)
{
int tmp = n1 % 10;
n1 /= 10;
if(vis[tmp])
return 0;
}
return 1;
}
int main()
{
int i;
for(i = 123456; i <= 987654; i++)
{
if(judge(i))
{
printf("%d\n",i);
}
}
return 0;
}
if语句,一般就是说 : 如果if 后面的括号里的命题为真的话则运行 if 的内容,if的内容指的是if下的第一句话直到 ; 这个符号结束为止,或者指 if 下的 { } 里的内容
一般情况下 值为 1 则代表真,否则为假
明白了??
另外,memset(vis, 0, sizeof(vis)) 这是个置零或负一的函数(用于数组时)
一般情况下 值为 1 则代表真,否则为假
明白了??
另外,memset(vis, 0, sizeof(vis)) 这是个置零或负一的函数(用于数组时)
温馨提示:答案为网友推荐,仅供参考