【算法提高—蓝桥杯】阮小二买彩票
生活随笔
收集整理的這篇文章主要介紹了
【算法提高—蓝桥杯】阮小二买彩票
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【Description】題目描述
在同學們的幫助下,阮小二是變的越來越懶了,連算賬都不愿意自己親自動手了,每天的工作就是坐在電腦前看自己的銀行賬戶的錢是否有變多。可是一段時間觀察下來,阮小二發現自己賬戶的錢增長好慢啊,碰到節假日的時候連個銅板都沒進,更郁悶的是這些天分文不進就算了,可恨的是銀行這幾天還有可能“落井下石”(代扣個人所得稅),看著自己賬戶的錢被負增長了,阮小二就有被割肉的感覺(太痛苦了!),這時阮小二最大的愿望無疑是以最快的速度日進斗金,可什么方法能夠日進斗金呢?搶銀行(老本行)?不行,太危險,怕有命搶沒命花;維持現狀?受不了,摟錢太慢了!想來想去,抓破腦袋之后,終于想到了能快速發家致富的法寶----買彩票,不但掙了錢有命花,運氣好的話,可以每天中他個幾百萬的,豈不爽哉!抱著這種想法,阮小二開始了他的買彩票之旅。想法是“好的”(太天真了OR 太蠢了),可是又發現自己的數學功底太差,因為不知道數字都有哪些組合排列?那現在就請同學們寫個遞歸程序,幫助阮小二解決一下這個問題吧!
【Input】輸入描述:
不超過6位數的正整數N,注意:構成正整數N的數字可重復
【Output】輸出描述:
組成正整數N的所有位數的全排列,這些排列按升序輸出,每個排列占一行。
注意:輸出數據中不能有重復的排列
輸入樣例:
123輸出樣例:
123
132
213
231
312
321
HINT:時間限制:1.0s 內存限制:512.0MB
這道題已經說明要用遞歸程序,所以要用遞歸來解決。
思路:回溯法
完整代碼:
import java.util.Arrays; import java.util.Scanner; public class Reback_sort {static void swap(int i,int j,char a[]) {char temp=a[i];a[i]=a[j];a[j]=temp;}static public void f(int k,char a[]) {if(k==a.length) {System.out.println(a);return;}for(int i=k;i<a.length;i++) {if(i!=k&&a[i]==a[k]) continue;swap(i,k,a); //換回到原來的位置f(k+1, a);swap(i,k,a); //互換位置}}public static void main(String []args) {Scanner reader=new Scanner(System.in);String n=reader.nextLine();char a[]=n.toCharArray(); //將輸入內容轉入數組Arrays.sort(a); //對數組內容進行排序f(0,a);} }總結
以上是生活随笔為你收集整理的【算法提高—蓝桥杯】阮小二买彩票的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nat网络地址转换实验
- 下一篇: STM32之W5500:掉线重联????