【发布时间】:2017-01-24 16:23:38
【问题描述】:
我正在尝试获得以下输出:
Enter integer: 87240
Missing digits: 1 3 5 6 9
到目前为止,这是我的代码:
// Extract numbers inside integer n
while (numOfDigits > 0)
{
int digit = n % 10;
int missing = 0;
while ((digit != missing) && (missing < 10))
{
cout << missing << " ";
missing++;
}
numOfDigits--;
n /= 10;
}
打印出来
Enter integer: 87240
Missing digits: 0 1 2 3 0 1 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7
有什么方法可以在不使用数组的情况下做到这一点?
【问题讨论】:
-
就我个人而言,我只是将数字作为字符串输入,然后使用
find()检查每个数字是否存在。 -
“不使用数组”是什么意思?你的代码在哪里使用数组?
-
我认为他的意思是不使用数组(正如他尝试做的那样)来做到这一点,这通常是需要的(例如过滤掉使用过的数字)。尽管如此,数组(10 项)所需的大小并不是很大,所以我可能会使用数组来允许 O(n) 运行时间而不是 O(n^2)。
标签: c++ syntax while-loop extract digits