Получить числа составленные из 1, 2, 3, 4 по возрастанию
Всем привет! Мне нужно получить массив чисел которые состоят из 1, 2, 3, 4 и чтобы в массиве числа стояли по возрастанию. Нужно получить до n-ого числа(1<=n<=10^9) И это должно работать максимально быстро.
В массив возможно не поместится, попробуйте вектор из stl
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
int main(int argc, const char * argv[])
{
int v[9] = {1};
for(;;)
{
int val = 0;
for(int i = 0; i < 9; ++i) val = v[8-i] + val*10;
cout << val << endl;
int c = 1;
for(int i = 0; c && i < 9; ++i)
{
v[i] += c;
c = 0;
if (v[i] > 4) v[i] = c = 1;
}
if (c) break;
}
}