9.2.2将1到9数字分成三组,每组的三个数排成一个位数的完全平方数 每个数字有且只能用一次
程序员文章站
2024-02-01 19:09:58
...
1.必须先理解思路再去找BUG不然就是浪费时间。。。。。。。。。
/**
* 先解决思路的问题:
* 1.三位数100-999对应的某个值完全平方数
* 2.值的范围为10 <m < 32
* 3.怎么获取九位数的分成三组的各个数(采用求余数的方式)
*
*
* 先将每个数对应的平方值存一个数组中
* 分别从数组中取出三个数,看三个数是不是9个不同的元素组成
*/
#include <stdio.h>
void main()
{
int a[20], b[10];
int i, j, k, m, n, t, h;
for (j = 0, i = 11; i <= 31; ++i)
{
if (i % 10 != 0)
{
a[++j] = i * i;
}
printf("\n");
}
//一维数组中挑出3个不同数(排列组合也可以优化)
for (k = 1; k <= j - 2; ++k)
{
for (m = k + 1; m <= j - 1; ++m)
{
for (n = m + 1; n <= j; ++n)
{
b[1] = a[k] / 100;
b[2] = (a[k] / 10) % 10;
b[3] = a[k] % 10;
b[4] = a[m] / 100;
b[5] = (a[m] / 10) % 10;
b[6] = a[m] % 10;
b[7] = a[n] / 100;
b[8] = (a[n] / 10) % 10;
b[9] = a[n] % 10;
for (t = 1; t <= 8; t++)
{
for (h = t + 1; h <= 9; ++h)
{
if (b[t] == b[h])
{
printf("===================%d%d\n", b[t], b[h]);
goto abc;
// printf("======a=============%d%d\n",b[t],b[h]);
}
}
}//需要判断当前数字不存在重复的数才能输出
printf("result : %5d%5d%5d\n", a[k], a[m], a[n]);
goto end;
abc:;
}
}
}
end:;
}
上一篇: P1008 三连击(洛谷)
下一篇: YII 的源码分析(三),yii源码分析