[java]duvida

nasic

Power Member
Boas...epa tou aqui com uma duvida parva...
Eu quero imprimir uma sequencia deste genero:
11111000001111100000

em que o numero de 1's ou 0's é um valor dado.
Obrigado
 
Código:
int n=10; /* número de uns e zeros */
int k;

k=2*n;

while( true ){
  for ( int i = 0; i < k; i++ ) {
    if ( i > n )
      /* imprime os zeros */
    else
      /* imprime os uns */
  }
}

Isto provoca um ciclo infinito, mas dá para criares uma situação de escape. Utilizei apenas um ciclo for para optimizar, mas podiam ser 2 ciclos (um para os uns, outro para os zeros).
Não compilei, mas deve funcionar.
 
Última edição:
Não deve compilar porque dentro dos parentisis, o for leva ponto e virgula, fora isso compila.

De qq modo tiveste bem, porque eu ainda nao consegui perceber o q e' o rapaz quer... : p
 
Não deve compilar porque dentro dos parentisis, o for leva ponto e virgula, fora isso compila.

De qq modo tiveste bem, porque eu ainda nao consegui perceber o q e' o rapaz quer... : p

True. Já corrigi.

O que ele quer (pelo que percebi) é que escreva no ecrã "n" uns e zeros, intercalados.

Tipo:
n=2 -> "11001100..."
n=3 -> "111000111000..."

And so on...
 
ok...
e se eu quiser que imprima ate um determinado numero?
por exemplo 10
Sequencias de 1 e 0 (tal cm fizeste) mas com a condição de aparecerem 10 numeros no ecran, ou seja

1100110011
qd o periodo for 2

nao basta um simples while....
alguem me ajuda?

Obg
 
Tipo... Mas qual é a dificuldade? Em vez do ciclo infinito, fazes:

Código:
int m=10; /* número máximo de números no ecrã */
int n=10; /* número de uns e zeros */
int k;

k=2*n;
m=m%k; /* divisão inteira */

for ( int j = 1; j <= m ; j++ ){
  for ( int i = 0; i < k; i++ ) {
    if ( i > n )
      /* imprime os zeros */
    else
      /* imprime os uns */
  }
}

Espero não te estar a fazer a papinha toda... Era suposto PENSARES sobre isto.
 
Última edição:
Isso nao esta a fazer bem aquilo que eu queria...
eu queria imprimir, por exemplo, apenas 10 numeros no ecran mas em sequencias

por exemplo: 1100110011 tem 10 numeros

Peço desculpa, mas n estou a conseguir!
 
Vê lá se tens a linha de código da divisão inteira como está no post. Eu alterei passados uns minutos.

Isso que estás a fazer é para a escola ou para uso pessoal?
 
Sim eu reparei que alteraste...mas mm assim n dá. O que faz é imprimir cada numero m vezes!

É pessoal claro, estou me a iniciar nesta linguagem.

obrigado
 
Ok, já compilei e já resolvi os problemas:

Código:
        int m=20; /* número máximo de números no ecrã */
        int n=3; /* número de uns e zeros */
        int k;
        
        k=2*n;
        m=m/k;
        
        for ( int j = 1; j <= m ; j++ ){
            for ( int i = 0; i < k; i++ ) {
                if ( i >= n ) {
                    /* imprime os zeros */
                    System.out.print("0");
                } else {
                    /* imprime os uns */
                    System.out.print("1");
                }
            }
        }
 
Back
Topo