3-значный генератор в C
Я пытаюсь сгенерировать все возможные 3-значные комбинации, например: 012, 013 ,014...
НО: я хочу игнорировать повторяющиеся символы (например, 999 или 022), и я также не хочу повторно использовать числа (если 123 уже есть, не отображать 321), поэтому последнее значение должно быть 789.
Вот мой код:
int main()
{
int i;
int j;
for(i=1;i<(1<<9);i++)
{
for(j=0;j<9;j++)
{
if ((1<<j)&i) printf("%d\n",j+1);
}
}
}
Я хочу, чтобы мой результат был упорядочен следующим образом:
012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789
Кроме того, я не должен использовать какую-либо функцию, кроме printf / putchar.
2 ответа
Я думаю, что самый простой способ решить это было бы что-то вроде
for (i = 0; i <= 7; i++)
{
for (j = i+1; j <= 8; j++)
{
for (k = j+1; k <= 9; k++)
{
printf("%d%d%d\n", i, j, k);
}
}
}
Привет, ты из EPITECH? это один из 3-х дней работы "piscine". Сложность этой функции в том, что вы не можете использовать printf и "my_put_nbr" (%d printf) функцию, которую вам придется кодировать завтра, я думаю, и которая может напечатать переменную int так, Вы должны найти способ напечатать каждый символ для каждого числа с помощью функции my_putchar для тех, кто интересуется здесь функцией my_putchar
void my_putchar(char c)
{
write(1, &c, 1);
}