首页 > 其他分享 >排列(permutation)

排列(permutation)

时间:2022-11-28 18:39:27浏览次数:34  
标签:排列 divideNum int static result permutation ia public


排列(permutation)

       用1,2,3,...,9组成3个三位数 abc,def 和 ghi,每个数字恰好使用一次,要求 abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。

【分析】

(分析过程附加在代码注释中)

用java语言编写程序,代码如下:

public class Permutation {
public static void main(String[] args) {
for(int i = 123; i < 333; i++) {
int j = i * 2;
int k = i * 3;

if(check(i, j, k))
System.out.println(i + " " + j + " " + k);
}
}

//检查三个数i,j,k中每位数是否恰好使用一次。如果是,返回true,反之,返回false。
public static boolean check(int i, int j, int k) {
// TODO Auto-generated method stub
int temp1 = 45;// 1,2,3,...,9 的和
int temp2 = 362880;// 1,2,3,...,9 的乘积

//分割这三个数i,j,k
int[] ia = divideNum(i);
int[] ja = divideNum(j);
int[] ka = divideNum(k);

int result_add = 0;
int result_multi = 1;

//将每个数的位的值相加;将每个数的位的值相乘
for(int x = 0; x < 3; x++) {
result_add += ia[x] + ja[x] + ka[x];
result_multi *= ia[x] * ja[x] * ka[x];
}

if(result_add == temp1 && result_multi == temp2)
return true;
return false;
}

//将一个三位数的数进行分割,它的每位数都依次存于数组中
public static int[] divideNum(int n) {
int[] a = new int[3];
a[0] = n / 100;
a[1] = n % 100 / 10;
a[2] = n % 10;
return a;
}
}



标签:排列,divideNum,int,static,result,permutation,ia,public
From: https://blog.51cto.com/u_15894233/5893349

相关文章

  • 排列组合公式 与24点编程游戏
    排列组合公式此外, 规定0!=1.24点游戏编程问题问题描述你有4张写有1到9数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到24。示例1:输入:[4,1,8,7......
  • 【LeeCode】46. 全排列
    【题目描述】​​https://leetcode.cn/problems/permutations/?favorite=2cktkvj​​给定一个不含重复数字的数组 ​​nums​​ ,返回其 所有可能的全排列 。你可以 按......
  • CF804E The same permutation
    首先当\(n\equiv\left\{\begin{matrix}2,3\end{matrix}\right\}\pmod4\)时,无解,因为每次操作一定会改变逆序对奇偶性。那就只剩两种情况先考虑\(n\equiv0\pmod......
  • 四种语言刷算法之全排列
    力扣46.全排列1、C/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothre......
  • mysql升序排列id为0的在最后
    在实际开发中有时会有升序排列id为0的在最后的需求,这里我记录了一种在stackoverflow中比较简单的方法如下:Youmaywanttotrythefollowing:SELECT*FROMyour_tableOR......
  • 31. 下一个排列(stl的algorithm中next_permutation的实现)
    注:这题思路就是stl的algorithm中next_permutation的实现思路整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr=[1,2,3] ,以下这些都可以视作 ......
  • 【算法】最后一个单词的长度,颠倒二进制位,排列序列等三道题目
    颠倒二进制位题目描述颠倒给定的32位无符号整数的二进制位。提示:请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并......
  • 信奥中的数学:排列组合
    【小学数学】非高手勿入——排列组合​​https://www.bilibili.com/video/BV1pM4y157yT/​​2021新五年级暑假第4讲排列组合初步​​https://www.bilibili.com/video/BV11q......
  • 数量4-排列组合
    1234方法2,可能性大于或等于3种时,反面推比较简单,反面为全A或全B(全B根本不够排除,剩下全A,全A就1种)5678要理解小学生条件含义,自己没有画图导致错了。......
  • dfs 实现排列型、组合型、指数型枚举
    1、排列型枚举大家喜闻乐见,经常写的全排列。不做赘述。#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;intn;intpath[20];boolvis[20];voiddfs(intste......