日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

2017蓝桥杯省赛---java---A---2(9数算式)

發(fā)布時(shí)間:2023/12/3 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017蓝桥杯省赛---java---A---2(9数算式) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

思路分析

全排列+check

代碼實(shí)現(xiàn)

package TEST;import java.util.HashSet; import java.util.Set;class Main{static int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };static int ans;public static void main(String[] args) {f(0);System.out.println(ans / 2);}// 全排列private static void f(int k) {// 全排列終點(diǎn)if (k == a.length) {// 處理該種排列下所有的乘法可能for (int i = 1; i < a.length; i++) {int x1 = a2i(0, i);int x2 = a2i(i, 9);// 如果乘積也包含了九個(gè)數(shù)字,ans++if (check(x1 * x2)) {ans++; // 這里沒有考慮x1和x2交換順序的情況,所以最后輸出時(shí)要除以2}}}// 全排列for (int i = k; i < a.length; i++) {int t = a[i];a[i] = a[k];a[k] = t;f(k + 1);t = a[i];a[i] = a[k];a[k] = t;}}// 判斷x是否是一個(gè)包含九個(gè)數(shù)字的數(shù)private static boolean check(int x) {String s = x + "";if (s.length() != 9 || s.indexOf('0') > -1) {return false;}Set<Character> set = new HashSet<Character>();for (int i = 0; i < s.length(); i++) {set.add(s.charAt(i));}if (set.size() == 9) {return true;}return false;}// 將a數(shù)組[begin,end)轉(zhuǎn)換為整數(shù)private static int a2i(int begin, int end) {int res = a[begin];for (int i = begin + 1; i < end; i++) {res *= 10;res += a[i];}return res;}}

答案

1652

總結(jié)

以上是生活随笔為你收集整理的2017蓝桥杯省赛---java---A---2(9数算式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。