作业帮 > 综合 > 作业

C语言编程实现用9个数字排成没有重复数字的完全平方数

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 12:55:20
C语言编程实现用9个数字排成没有重复数字的完全平方数
把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数.按从小到大的顺序输出这三个三位数.
输入

输出
按从小到大的顺序输出这三个三位数,由空格隔开.输出占一行.
C语言编程实现用9个数字排成没有重复数字的完全平方数
#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;
}