我正在尝试生成每个可能的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 。
答案 0 :(得分:5)
我认为解决这个问题的最简单方法就是
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);
}
}
}
答案 1 :(得分:0)
你好,你是EPITECH吗?这是“鱼”工作的第3天之一 这个函数的难点在于你不能使用printf而不是“my_put_nbr”(%d printf)一个你必须明天编码的函数我猜是谁可以打印int变量 所以你必须找到一种方法,用my_putchar函数打印每个数字的每个字符 对于那些想知道的人是my_putchar函数
void my_putchar(char c)
{
write(1, &c, 1);
}