Oppure

Loading
04/10/11 20:13
drewnik99
Il problema è il seguente:
dato un vettore di caratteri di lungezza pari ad un quadrato perfetto(minimo 25), eseguire una rotazione a spirale di tale vettore.

Esempio:
vettore: "abcdefghijklmnopqrstuvwxy" 25 caratteri

abcde mabcd
fghij kfghe
klmno ---> pqlij
pqrst ursno
uvwxy vwxyt

ottengo: "mabcdkfghepqlijursnvwxyt"


abcde -> /abcd + e(orizzontale)
ejoty -> d(e)jot + y(verticale)
uvwxy -> vwx(y)t + (orizzontale - contrario)
afkpu -> /kp(u)v + y(verticale - contrario)

/ = il primo carattere diventerà 'm', che è l'ultimo nello spirale.
Qualche suggerimento?
Ultima modifica effettuata da drewnik99 04/10/11 20:23
aaa
05/10/11 0:08
pierotofy
Una spirale su un quadrato e' composta da tanti quadrati messi uno dentro all'altro, ad una profondita P.

Prendendo la matrice 5x5 delle lettere alfabetiche che hai proposto tu, a profondita 0 il quadrato (perimetro del quadrato) e' composto da abcdejotyxwvupkf.

A profondita 1 e' composto da ghinsrqlg.

A pronfondita' 2 e' composto solo da m.

Se riesci a scrivere una funzione che data una matrice ti ritorna i componenti esterni che formano il perimetro del quadrato (a profondita' P), fai una serie di concatenazioni da P = 0 a N (dove N e' dato dalla dimensione del quadrato/2), dopodiche' fai un semplice shift (ultimo elemento diventa il primo, il primo diventa secondo, ecc.).
Ultima modifica effettuata da pierotofy 05/10/11 1:34
Il mio blog: piero.dev