假設我想檢查一個數字n = 123是否有重複的數字。我試過:檢查號碼重複數字的最快方法是什麼?
#include <iostream>
using namespace std;
int main() {
int n = 123;
int d1 = n % 10;
int d2 = (n/10) % 10;
int d3 = (n/100) % 10;
if(d1 != d2 && d1 != d3 && d2 != d3) {
cout << n << " does not have duplicate digits.\n";
}
}
有沒有更快的解決方案來解決這個問題?
更新
對不起,不清楚。上面的代碼是用C++編寫的,僅用於描述目的。我必須在TI-89中解決這個問題,其中有9位數字。由於內存和速度的限制,我正在尋找一種最快的方式。
TI-89只有幾個條件關鍵字:
- 如果
- 如果...那麼
- 時(
- 對於... ENDFOR
- 雖然... ENDWHILE
- Loop ... EndLoop
- Custom ... EndCustom 個
感謝,
陳
由於您的解決方案僅限於三位數字,只需製作具有重複數字的數字的哈希表,並檢查數字是否包含在其中。 – aaronasterling 2011-01-26 04:54:48
您還需要處理少於三位的數字(如果這是有效的輸入)。現在`n = 1`將被拒絕爲重複數字(前導零)。 – Thilo 2011-01-26 05:07:43
您正在使用TI-89上的哪種語言? – 2011-01-26 05:11:15