Advertisement

三连击(枚举排列)

阅读量:

问题

将数字 1 至 9 共计 9 个数划分为三组,每组构成一个三位数,且这三个三位数之间的比例关系为 a : b : c,要求找出所有符合该比例条件的三位数组合。若不存在符合条件的组合,则输出 No!!!。

输入说明:

输入包括三个数值,分别为 a、b、c。

输出说明:

输出若干行,每行包含三个数字。各行的第一个数字需按照升序排列。

示例 1:
输入:
1 2 3
输出:
192 384 576
219 438 657
273 546 819
327 654 981

思路

本方案通过列举九个数字的所有排列方式,借助 C++ 语言中的 next_permutation 函数依次生成后续排列。在进行比值计算时,应当乘以小数 1.0,否则除法运算将默认将结果截断为整数形式。

代码

复制代码
    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std ;
    
    int main(){
    vector<int> p {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int a, b, c, ans[3];
    
    cin >> a >>

全部评论 (0)

还没有任何评论哟~