Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em como passar de 3 pra 1 for


shiroyamacah

Pergunta

Eu fiz um programam para imprimir:

1 010

2 0110110

3 0111011101110

4 011110111101111011110

....

e fiz com for apenas.

só que agora tem que usar apenas 1 for e nada de while/do-while/break/continue

apenas for,if e else :(

estou pensando, mas sempre tá dando errado >.<

não sei como repetir o 1 x.x

alguém tem alguma ideia?

o que fiz com 3 fors:

#include <stdio.h>

main () {

long int x;

int i,cont;

printf("Coloque um valor inteiro:\n");

scanf("%d", &x);

for (cont=1;cont<=x;cont++)

{

for (i=1;i<=x;i++)

{ printf("0");

for (i=1;i<=x;i++)

{ printf("1");}

}

}

printf("0\nPressione Enter para sair: ");

getchar(); getchar();

}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Usei uma variavel extra, Y, para armazenar a quantidade total de numeros a serem impressos. Já que só um for pode ser usado temos que saber quantos números serão impressos.

O truque está aqui:

if ( i%(x+1)==0)
quando i chegar a um numero em que sua divisão por x+1 der resto 0, sabemos que é hora de começar outro bloco de números.
#include <stdio.h>
int main () {

    long int x,y;
    int i,cont;
    printf("Coloque um valor inteiro:\n");
    scanf("%d", &x);

    y = (x*x) + x+1; // total de numeros a serem impressos

    for(int i=0; i < y; i++) {
        if ( i%(x+1)==0)
            printf("0");
        else printf("1");
    }


    getchar(); getchar();
    return 0;
}

Editado por Myho
Link para o comentário
Compartilhar em outros sites

  • 0

X é o número de padrões a serem desenhados, mas como só posso usar um for eu preciso saber quantos números tem que ser desenhados.

Então supondo que o usuário digite 2, para que a saída seja

0110110

São 4 uns e 3 zeros, totalizando 7 números, se ele digita 3

0111011101110

São 9 uns e 4 zeros, totalizando 13 números.

Como pode ver o numero de uns é sempre o quadrado do que o usuário digitou ( x ) e o numero de zeros é sempre um a mais do que o número digitado ( x ).

Essa foi a maneira que eu pensei para resolver, podem existir outras, contanto que o resultado seja o esperado, tanto faz =)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...