5 回答

TA貢獻(xiàn)39條經(jīng)驗(yàn) 獲得超13個(gè)贊
效率最高的思路不難,就是怎么不轉(zhuǎn)換成字符串來獲得每個(gè)位的數(shù)字,
用進(jìn)制轉(zhuǎn)換的算法就能獲得
while(n>0){ ??c=n%進(jìn)制;?//c是該位上的數(shù)字,個(gè)位/十位/百位…… ??n=n/進(jìn)制; }
這里是10進(jìn)制,就換成10就好。
JS寫法:
function?test(n){ ??var?num=[]; ??while(n>0){ ????var?c=n%10; ????if(num[c])?return?true; ????num[c]=true; ????n=Math.floor(n/10); ?} ?return?false; }
C寫法:
bool?test(int?n)?{ ??bool[]?num?=?new?bool[10]; ??while?(n?>?0)?{ ????int?c?=?n?%?10; ????if?(num[c])?return?true; ????num[c]?=?true; ????n?=?n?/?10; ??} ??return?false; }
?

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超0個(gè)贊

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超2個(gè)贊
利用數(shù)組。先將數(shù)字轉(zhuǎn)換字符串,在將字符串轉(zhuǎn)換字符數(shù)組。
public?static?void?main(String[]?args)?{ ????Integer?numbers?=?123456678; ????char[]?numberChars?=?numbers.toString().toCharArray(); ????for(int?i?=?0;?i?<?numberChars.length-1;?i++){ ????????if(numberChars[i]?==?numberChars[i+1]){ ????????????System.out.println("存在重復(fù)數(shù)字為:"+numberChars[i]); ????????} ????} }

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
let?repetitionNum?=?function?(num?=?0)?{ ????let?toArr?=?num.toString().split('') ????let?J_Set?=?new?Set(toArr) ????if?(toArr.length?!=?J_Set.size)?{ ????????return?true ????}?else?{ ????????return?false ????} }
思路:將整數(shù)轉(zhuǎn)化為Set數(shù)據(jù)結(jié)構(gòu)(J_Set)和數(shù)據(jù)(toArr),由于Set可以去重,所以Set的長度和toArr長度比較就可以知道結(jié)果。

TA貢獻(xiàn)93條經(jīng)驗(yàn) 獲得超29個(gè)贊
private?static?void?mumbersChecks(long?num)?{ String?numString?=?new?Long(num).toString(); String[]?nums?=?numString.split(""); ????boolean?isSame?=?false; for?(int?i?=?0;?i?<?nums.length?-?1;?i++)?{ ????for?(int?j?=?i?+?1;?j?<?nums.length;?j++) ????????if?(nums[i].equals(nums[j]))?{ ????????isSame?=?true; ???????? ????break; ????????} ????if?(isSame) ????break; ????} ????System.out.println((isSame???""?:?"沒")?+?"有相同的數(shù)字"); }

TA貢獻(xiàn)105條經(jīng)驗(yàn) 獲得超21個(gè)贊
var num = 1234567892;
//返回false表示有相同數(shù)字,true表示沒有
function isUniqNumber(num){
? ? var arr = num+''.split('');
? ? for(var i=0,len=arr.length;i<len;i++){
? ? ? ? for(var j=0,len=arr.length;j<len;j++){
? ? ? ? ? ? if(arr[j]===arr[i] && i!==j){
? ? ? ? ? ? ? ? return false
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return true;
}
isUniqNumber(num)
添加回答
舉報(bào)