Masato Posted October 6, 2012 at 11:17 AM Report #477981 Posted October 6, 2012 at 11:17 AM Olá Estou a fazer um exercicio que pede que ao dar um vector por exemplo(1,2,3,4,5) e o programa devolve (5,4,3,2,1,1,2,3,4,5) já arranjei maneira de ele dar (5,4,3,2,1,0,0,0,0,0) , mas a segunda parte do vector está-me a dar dificuldades. Eis o que fiz; static int [] duplicateInverted (int []v) { int i=0; int j=v.length-1; int []v1= new int [v.length*2]; while(i<v.length) { v1[j]=v[i]; i=i+1; j=j-1; } while (i<v.length) { v1[j]=v[i]; i=i+1; j=j+1; } return v1; }
HappyHippyHippo Posted October 6, 2012 at 11:35 AM Report #477982 Posted October 6, 2012 at 11:35 AM o processo é simples, bata determinar em que posição do vector final terás um valor do vector inicial olhando para o teu vector inicial, vamos marcar as posição iniciais e as posições finais: vector inicial = [1, 2, 3, 4, 5] posicoes = 0, 1, 2, 3, 4 vector final = [5, 4, 3, 2, 1, 1, 2, 3, 4, 5] posicoes = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 se agora agrupares os valores terás valor : pos_inicial >> pos_final 1 : 0 >> 4, 5 2 : 1 >> 3, 6 3 : 2 >> 2, 7 4 : 3 >> 1, 8 5 : 4 >> 0, 9 agora basta ter um ciclo para determinar estes valores de uma só vez ciclo i : 0 a 4 // indices do vector original dest1 : comp_vect_original - i - 1 // resulta nos valores {4, 3, 2, 1, 0} dest2 : comp_vect_original + i // resulta nos valores {5, 6, 7, 8, 9} como podes ver tens assim em cada ciclo: ciclo i : 0 dest1 : 4 dest2 : 5 ciclo i : 1 dest1 : 3 dest2 : 6 ciclo i : 2 dest1 : 2 dest2 : 7 ciclo i : 3 dest1 : 1 dest2 : 8 ciclo i : 4 dest1 : 0 dest2 : 9 como ves a solução é simples a única razão porque te apresentei o processo de criação da solução foi unciamente porque já é o segundo post que fazes com um execício semelhante, sem apresentares um raciocínio correcto de como solucionar o problema IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now