Sequencia I J 2 - 1096
Boa tarde Pessoal!
Depois de muito quebrar a cabeça, consegui resolver a questão com um código que sei que está ruim. Como posso melhorá-lo? Segue:
using System;
namespace SequenciaIJ2_1096
{
public class Program
{
public static void Main(string[] args)
{
int i = 1;
int j = 7;
while (i <= 9)
{
Console.WriteLine($"I={i} J={j}");
Console.WriteLine($"I={i} J={j -= 1}");
Console.WriteLine($"I={i} J={j -= 1}");
i += 2;
Console.WriteLine($"I={i} J={j += 2}");
Console.WriteLine($"I={i} J={j -= 1}");
Console.WriteLine($"I={i} J={j -= 1}");
i += 2;
Console.WriteLine($"I={i} J={j += 2}");
Console.WriteLine($"I={i} J={j -= 1}");
Console.WriteLine($"I={i} J={j -= 1}");
i += 2;
Console.WriteLine($"I={i} J={j += 2}");
Console.WriteLine($"I={i} J={j -= 1}");
Console.WriteLine($"I={i} J={j -= 1}");
i += 2;
Console.WriteLine($"I={i} J={j += 2}");
Console.WriteLine($"I={i} J={j -= 1}");
Console.WriteLine($"I={i} J={j -= 1}");
break;
}
}
}
}
Daniel pinheiro @daniel015Eu fiz utilizando dois for, ficou desse jeito:
for(int i = 1; i <= 9; i += 2) { for (int j = 7; j >= 5; j--) { Console.WriteLine($"I={i} J={j}"); } }
Daniel Carvalho @DanielCarvalhovaleu, daniel! me ajudou muito aqui

Thiago Marinho @ThiagoMarinhorealmente o código fica mais enxuto com o For.
- Em resposta aLucianoFroes⬆:
Luciano Fróes @LucianoFroesUtilizando o for, fica muito mais fácil e simples. Depois dê uma olhadinha nessa ferramenta. Um participante do fórum aqui fez uma publicação muito legal sobre as ferramentas de repetição.
Em resposta ajvbevangelista⬆:André Filipe @andresantosVeja como solucionei o problema 1098, que é parecido com o 1096. Você verá que é possível usar apenas um
for
André Filipe @andresantosObserve que você usou um
breaksem definir uma condição para execução dele. Logo, o laço irá parar imediatamente na primeira iteração.Isso quer dizer que o
whileestá inútil ewhile (i <= 9)não é verificado várias vezes.Para confirmar, você escreveu 15
Console.WriteLine()ao invés de no máximo 3. Sabe o que isso significa? Que o algoritmo está sendo executado como se fosse um problema de "assunto sequencial" ao invés de "assunto repetição" do beecrowd.- JJoão Victor Barbosa Evangelista @jvbevangelista
Eu vi sua solução para o 1098 e achei excelente!
Nesse algoritmo que montei a repetição realmente ficou toda pelo meu CTRL C + CTRL V, ao invés de automatizada. Sua solução e a de todos aqui abriram meus olhos pra como resolver este problema. Acabei submetendo outra vez, dessa vez utilizando um laço de repetição na solução.
Em resposta ajvbevangelista⬆:Rafael Santos @Rafaxd22Eu fiz usando o while mesmo, fazendo enquanto o i for menor ou igual ao 9 e diminuindo no próprio console.writeline
static void Main(string[] args) { int i = 1, j = 7; while (i <= 9) { Console.WriteLine($"I={i} J={j}"); Console.WriteLine($"I={i} J={j - 1}"); Console.WriteLine($"I={i} J={j - 2}"); i += 2; j += 0; } }}
- JJoão Victor Barbosa Evangelista @jvbevangelista
E passou? Tentei submeter algo parecido antes e o J começava em 7, mas recomeçava sempre no menor valor do loop anterior...
Rafael Santos @Rafaxd22Deu certo sim, no caso ali eu to incrementando +2 no i, e em cada loop to fazendo a impressão dos dados, no primeiro loop o j vai estar valendo 7, ai no primeiro console.writeline ele vai repetir o valor de j que é 7, no segundo ele vai fazer 7 - 1 e no último 7 - 2
Em resposta ajvbevangelista⬆:MARIO IGOR BARBOSA @migorkingo meu fiz um pouco mais resumido, vê se te ajuda.
int entradaI, entradaJ;
entradaI = 1; entradaJ = 7; while (entradaI <= 9) { for (int i = 0; i < 3; i++) { Console.WriteLine($"I={entradaI} J={entradaJ}"); entradaJ--; } entradaJ = 7; entradaI += 2; }
Em resposta ajvbevangelista⬆:Thiago Marinho @ThiagoMarinhoBoa noite, segue como eu fiz utilizando o while, como o i so muda depois que a variável j termia, eu coloquei o i no final do loop.
class Program { public static void Main(string[] args) { int i = 1; while (i <= 9) { int j = 7; Console.WriteLine($"I={i} J={j}"); j--; Console.WriteLine($"I={i} J={j}"); j--; Console.WriteLine($"I={i} J={j}"); i += 2; } } }```- IEm resposta ajvbevangelista⬆:Iuri Rezende @iurizada
Oi Joao,
Eu criei 2 for, um dentro do outro. Primeiro eu fiz para o I e depois para o J (dentro do I)
for (int I = 1; I <= 9; I += 2)
{
for (int J = 7; J >= 5; J--)Console.WriteLine($"I={I} J={J}"); } } - GEm resposta ajvbevangelista⬆:Ribeiro Engenharia @GuilhermeAugusto
João eu fiz assim, talvez pode te ajudar:
// ESTABELECE O LOOPING COM AS CONDIÇÕES DE VERDADE
for (int i=0; i<=9; i+=2)
{
// DEFINE O ACRESCIMO E A ALTERAÇÃO DESEJADA
I +=2;// DEFINE AS FORMAS DE VISUALIZAÇÃO Console.WriteLine("I={0} J={1}", I, J1); Console.WriteLine("I={0} J={1}", I, J2); Console.WriteLine("I={0} J={1}", I, J3);
