日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017蓝桥杯省赛---java---A---2(9数算式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

思路分析

全排列+check

代碼實現

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) {// 全排列終點if (k == a.length) {// 處理該種排列下所有的乘法可能for (int i = 1; i < a.length; i++) {int x1 = a2i(0, i);int x2 = a2i(i, 9);// 如果乘積也包含了九個數字,ans++if (check(x1 * x2)) {ans++; // 這里沒有考慮x1和x2交換順序的情況,所以最后輸出時要除以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是否是一個包含九個數字的數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數組[begin,end)轉換為整數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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。