题库首页 › 青少年软件编程(C语言) › 题目 11340

势均力敌 用 n (> 2) 个不同的个位数字组成一个 n 位数,显然有 n! 个不同的结果。可以证明,这 n! 个数字可以被分为势均力敌的两组 —— 即平方和相等、且个数也相等的两组。 本题就请你用程序验证一下这个结论。 因为本题是一道简单题,所以规模很小,只考虑 n ≤ 4 的情况。 时间限制:4000 内存限制:262144 输入 输入第一行给出正整数 n(2 < n ≤ 4),随后一行给出 n 个不同的、在区间 [1, 9] 内的个位数字,其间以空格分隔。 输出 将所有组成的 n! 个不同的 n 位数分为平方和相等、且个数也相等的两组。但你只需要输出其中一组就可以了。每个数字占一行,共输出 n!/2 行。 注意:解可能不唯一,输出任何一组解就可以。 样例输入 3 5 2 1 样例输出 125 512 251

正确答案:参考程序(Python):势均力敌。n个数字全排列成n位数,平方和相等、个数相等分两组。DFS回溯分组,输出一组。核心:全排列分组。

试卷来源:202409 青少年等级考试C/C++真题三级

本卷相关题目

在线做题 同科目题库