亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

判斷一個整數內有沒有相同的數字。

判斷一個整數內有沒有相同的數字。

deemos 2018-05-02 11:08:55
如果我给出一个整数,是用一个算法来判断这个整数内有没有相同的数字。 就好比说 123456789是没有相同数字的整数。 123444489是有相同数字的整数。 虽然有了一种思路,但是相当的麻烦,希望求一个算法,有想法的可以来讨论一下~
查看完整描述

5 回答

已采納
?
我吃西瓜很快

TA貢獻39條經驗 獲得超13個贊

效率最高的思路不難,就是怎么不轉換成字符串來獲得每個位的數字,

用進制轉換的算法就能獲得

while(n>0){
??c=n%進制;?//c是該位上的數字,個位/十位/百位……
??n=n/進制;
}

這里是10進制,就換成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;
}

?

查看完整回答
反對 回復 2018-05-02
?
qq_承諾_2

TA貢獻11條經驗 獲得超2個贊

利用數組。先將數字轉換字符串,在將字符串轉換字符數組。

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("存在重復數字為:"+numberChars[i]);
????????}
????}
}


查看完整回答
反對 回復 2019-09-17
?
前端小蜘蛛

TA貢獻5條經驗 獲得超0個贊

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
????}
}

思路:將整數轉化為Set數據結構(J_Set)和數據(toArr),由于Set可以去重,所以Set的長度和toArr長度比較就可以知道結果。

查看完整回答
反對 回復 2018-05-02
?
qq_殺意隆_0

TA貢獻93條經驗 獲得超29個贊

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???""?:?"沒")?+?"有相同的數字");
}


查看完整回答
反對 回復 2018-05-02
?
Keyro

TA貢獻105條經驗 獲得超21個贊

var num = 1234567892;

//返回false表示有相同數字,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)


查看完整回答
反對 回復 2018-05-02
  • 5 回答
  • 0 關注
  • 4701 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號