C语言编程实现用9个数字排成没有重复数字的完全平方数把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 23:32:09
C语言编程实现用9个数字排成没有重复数字的完全平方数把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位
C语言编程实现用9个数字排成没有重复数字的完全平方数
把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位数.
输入
无
输出
按从小到大的顺序输出这三个三位数,由空格隔开.输出占一行.
C语言编程实现用9个数字排成没有重复数字的完全平方数把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位
#include <stdio.h>
int ok(int n)
{
int i = n % 10, j = n / 10 % 10, k = n / 100 % 10;
return i != j && j != k && k != i;
}
int ok3(int i, int j, int k)
{
int a[9], m, n;
a[0] = i % 10;
a[1] = i / 10 % 10;
a[2] = i / 100 % 10;
a[3] = j % 10;
a[4] = j / 10 % 10;
a[5] = j / 100 % 10;
a[6] = k % 10;
a[7] = k / 10 % 10;
a[8] = k / 100 % 10;
for (m = 0; m < 8; m++)
for (n = m + 1; n < 9; n++)
if (a[m] == a[n]) return 0;
return 1;
}
int main()
{
int i, j, k, a[20], n = 0;
for (i = 13; i < 32; i++)
if (ok(i * i)) a[n++] = i*i;
for (i = 0; i < n - 2; i++)
for (j = i + 1; j < n - 1; j++)
for (k = j + 1; k < n; k++)
if (ok3(a[i], a[j], a[k]))
printf("%d %d %d\n", a[i], a[j], a[k]);
return 0;
}