Помогите решит, пожалуйста.
Дан массив X[1..N]. Необходимо циклически сдвинуть его на k элементов вправо (т.е. элемент X после сдвига должен стоять на месте X[i+k]; тут мы считаем что за X[N] следует X[1]). Разрешается использовать только несколько дополнительных слов памяти (Дополнительного массива заводить нельзя!).
Задача в R studio.
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 05 ноя 2017, 15:49
- Репутация: 0
- Откуда: Москвa
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Задача в R studio.
опять школьники с домашними заданиями ... для сдвига на к=1 выньте первый, сдвиньте остальных на одну позицию (двигаясь справа налево), и вставьте вынутого на последнее место. Повторите к раз.
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 05 ноя 2017, 15:49
- Репутация: 0
- Откуда: Москвa
Re: Задача в R studio.
Проверьте код, пожалуйста. Можно ли решить задачу по-другому?
x<-c(1,2,3,4,5,6,7)
k<-9
k<-k%%length(x)
j<-1
l<-length(x)-k
while(j<=l){
a<-x[j]
x[j]<-x[l]
x[l]<-a
l=l-1
j=j+1
}
i<-length(x)
t=length(x)-k+1
while(t<=i){
a<-x[t]
x[t]<-x
x<-a
t=t+1
i=i-1
}
i<-length(x)
j<-1
while(j<=i){
a<-x[j]
x[j]<-x
x<-a
j=j+1
i=i-1
}
x
x<-c(1,2,3,4,5,6,7)
k<-9
k<-k%%length(x)
j<-1
l<-length(x)-k
while(j<=l){
a<-x[j]
x[j]<-x[l]
x[l]<-a
l=l-1
j=j+1
}
i<-length(x)
t=length(x)-k+1
while(t<=i){
a<-x[t]
x[t]<-x
x<-a
t=t+1
i=i-1
}
i<-length(x)
j<-1
while(j<=i){
a<-x[j]
x[j]<-x
x<-a
j=j+1
i=i-1
}
x
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 23 гостя