1 solutions

  • 0
    @ 2023-1-29 13:10:53
    #include<bits/stdc++.h>
    using namespace std;
    /*
    依次判断x ~ y之间每个数是否符合条件,
    其中判断一个整数是否各个位不同,
    可以采用短除法拆出这个数的各个位,
    并用数组计数法统计每一位出现的次数 
    */
    //判断某个数是否是7位数,且各个位不相等
    bool fun(int n){
    	if(n < 1000000 || n > 9999999) return false;
    	//判断n各个位互不相等
    	//数组计数法,统计n的各个位出现的次数
    	int a[20] = {0};
    	
    	while(n != 0){
    		a[n % 10]++;
    		n = n / 10; 
    	} 
    	//判断是否有某个数出现了不止1次
    	for(int i = 0; i <= 9; i++){
    		if(a[i] > 1) return false;
    	} 
    	return true;
    } 
    int main()
    {
    	int x, y; 
    	cin >> x >> y;
    	for(int i = x; i <= y; i++){
    		if(fun(i*i)) cout << i <<endl;
    	}
    	return 0;
    }
    
    

    Information

    ID
    458
    Time
    1000ms
    Memory
    64MiB
    Difficulty
    9
    Tags
    # Submissions
    10
    Accepted
    6
    Uploaded By