假设我想检查一个数字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