如果乙個數字十進位制表達時,不存在連續兩位相同,則稱之為「不重複數」。例如,105、164和198都是「不重複數」,而11、100和122不是。
下面用乙個long型別( long型別數字a),實現返回大於a的最小「不重複數」。
1static
long
gnext(
longa)2
11long
tmp =0
;//存放臨時值
12for
(intj =
cnt-
1; j
>=
0; j--)
//迴圈取值
131920}
21if
(cnt
>
2||tmp>90
)///
/輸入位數大於兩位執行
2230}31
}32return
tmp;33}
34static
long
getnext(
long
a)35
呼叫一下getnext(),很簡單,就不寫了。
主函式入口
演算法 隨機不重複數列生成
今天上班的時候網上看到題目很簡單,題目是這樣的 給定乙個正整數n,需要輸出乙個長度為n的陣列,陣列元素是隨機數,範圍為0 n 1,且元素不能重複。比如 n 3 時,需要獲取乙個長度為3的陣列,元素範圍為0 2 簡單的理解就是生成乙個無序的隨機數組,在路上想了一下回來用三種方式方式實現了一下 oc實現...
也談生成不重複數的演算法
剛剛看到有人寫生成不重複的隨機數的三種方法 正好在幾年前我也有過類似的要求,實現類似於雙色球隨機選號的功能,也就是在m個數中選取n個不重複的數 m n 0 下面我也談談我曾經用過的幾種做法,也算是對作者提出的方法的一種補充吧。一 利用contains 判斷法 思路是每次在制定範圍中隨機生成乙個隨機數...
今天的輸出不重複數
int a 10 bool ifcx 10 用於判斷數字是否出現過 int n 10 int ku new int n 用於存放出現過的數字 for int i 0 i 10 i 第一條給陣列變數賦值,第二條可不寫 全域性中的bool陣列變數初始為false for int i 0 ifor int...