将1到9平均分成3组,每组3个数,要求这三组数组成的三位数都是完全平方数,打印这样的三个数

本文介绍了一种用于检查三位数及三个不同三位数组合中数字是否具有唯一性的算法。通过定义函数isDiff3()来判断单个三位数的每一位是否各不相同,以及通过isDiff9()函数检查三个三位数的所有位数是否没有重复。该算法还包含了一个展示如何使用这些函数找出特定范围内所有符合条件的数字组合的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vector< int >    _N1;

bool isDiff3(int x)
{
    
int a = x % 10, b = x / 10 % 10,c = x / 100;
    
return a != b && b != c && a != c;
}
template 
< class T >    
inline T Taxis(T 
*A, int iMax)
{
    
for (int i = 0; i < iMax; ++i)
    {
        T tmp 
= A[i];
        
for (int j = i; j < iMax; ++j)
        {
            
if (tmp < A[j])
            {    
                A[i] 
= A[j];    
                A[j] 
= tmp;    
                tmp  
= A[i];    
            }
        }
    }

    
return A[0];
}
bool isDiff9(int x1, int x2, int x3)
{
    
int v[9];
    
*v     = x1 / 100;
    
*(v+1= x1 /10 % 10;
    
*(v+2= x1 % 10;

    
*(v+3= x2 / 100;
    
*(v+4= x2 /10 % 10;
    
*(v+5= x2 % 10;

    
*(v+6= x3 / 100;
    
*(v+7= x3 /10 % 10;
    
*(v+8= x3 % 10;

    Taxis(v, 
9);

    
return *== *(v+1||
        
*(v+1== *(v+2|| 
        
*(v+2== *(v+3||
        
*(v+3== *(v+4||
        
*(v+4== *(v+5||
        
*(v+5== *(v+6||
        
*(v+6== *(v+7||
        
*(v+7== *(v+8||
        
*(v+8== *(v);
}

void DisplayNum()
{
    
for (int i = 13; i < 32++i)
    {
        
int v = i * i;
        
if (isDiff3(v))
            _N1.push_back(v);
    }

    size_t N 
= _N1.size();
    
int f = 0;
    
for (int i = 0; i < N; ++i)
    {
        
for (int j = 0; j < N && i != j; ++j)
        {
            
for (int k = 0; k < N && j != k && i != k; ++k)
            {
                
int a = _N1[i], b = _N1[j], c = _N1[k];
                
if (!isDiff9(a,b,c))
                    printf(
"%d-%d-%d ", a,b,c, f++);
            }
        }
    }
    printf(
"have %d group number", f);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值