Problema: Divisão entre Bêbados
Dois amigos bêbados compraram N litros de vinho em X garrafas. O vendedor informou que cada garrafa contem a mesma quantidade de vinho sem frações (1 litro, 2 litros, nada de 1.23 litros), ajude os bêbados a validarem se o vendedor os enganou.
Entrada
A entrada contem vários casos de teste. A primeira e única linha contem 2 inteiros N, X onde 1 <=n, x>=25. A ultima é identificada por dois números zeros.
Saída
Para cada caso de teste de entrada seu programa deve imprimir uma única linha de saída contendo S para os casos que os Bêbados foram enganados e N para os casos que eles não foram enganados.
Exemplo de entrada
2 2
12 3
12 13
25 2
0 0
Exemplo de Saída
N
N
S
S
O algoritmo utilizado será:
{
int i, k = 0, l = 0;
/ * k - índice da linha inicial
m - índice da linha final
l - índice da coluna inicial
n - índice da coluna final
i - iterador
* /
enquanto (k <m && l <n)
{
/ * Imprime a primeira linha das linhas restantes * /
para (i = l; i <n; ++ i)
{
printf ("% d", a [k] [i]);
}
k ++;
/ * Imprimir a última coluna das colunas restantes * /
para (i = k; i <m; ++ i)
{
printf ("% d", a [i] [n-1]);
}
n--;
/ * Imprimir a última linha das linhas restantes * /
se (k <m)
{
para (i = n-1; i> = l; - i)
{
printf ("% d", a [m-1] [i]);
}
m--;
}
/ * Imprimir a primeira coluna das colunas restantes * /
if (l <n)
{
para (i = m-1; i> = k; - i)
{
printf ("% d", a [i] [l]);
}
l ++;
}
}
}
/ * Driver programa para testar as funções acima * /
int main ()
{
int a [R] [C] = {{1, 2, 3, 4, 5, 6},
{7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}
};
spiralPrint (R, C, a);
return 0;
}
O algoritmo utilizado será:
{
int i, k = 0, l = 0;
/ * k - índice da linha inicial
m - índice da linha final
l - índice da coluna inicial
n - índice da coluna final
i - iterador
* /
enquanto (k <m && l <n)
{
/ * Imprime a primeira linha das linhas restantes * /
para (i = l; i <n; ++ i)
{
printf ("% d", a [k] [i]);
}
k ++;
/ * Imprimir a última coluna das colunas restantes * /
para (i = k; i <m; ++ i)
{
printf ("% d", a [i] [n-1]);
}
n--;
/ * Imprimir a última linha das linhas restantes * /
se (k <m)
{
para (i = n-1; i> = l; - i)
{
printf ("% d", a [m-1] [i]);
}
m--;
}
/ * Imprimir a primeira coluna das colunas restantes * /
if (l <n)
{
para (i = m-1; i> = k; - i)
{
printf ("% d", a [i] [l]);
}
l ++;
}
}
}
/ * Driver programa para testar as funções acima * /
int main ()
{
int a [R] [C] = {{1, 2, 3, 4, 5, 6},
{7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}
};
spiralPrint (R, C, a);
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar