Alqoritm Analizi
m tam ədədlərdən ibarət giriş massivini göstərsin. Əvvəlcə, massivin son elementini çıxaracağıq m[n – 1]
. Sonra isə, m[0]
-dan m[n – 2]
-yə qədər olan bütün ədədləri ardıcıl olaraq çıxaracağıq.
Massivin elementlərinin həqiqətən də yenidən düzülüşü üçün elementi (i – 1)-ci hücrədən i-ci hücrəyə köçürmək lazımdır, 1 ≤ i ≤ n – 1. Ayrıca, (n – 1)-ci hücrədəki elementi 0-cı hücrəyə köçürmək lazımdır.
Alqoritm İcraatı
Tam ədəd massivi m elan edin.
int m[101];
Giriş ədədlərini m massivinə oxuyun.
scanf("%d",&n); for(i = 0; i < n; i++) scanf("%d",&m[i]);
Əvvəlcə, massivin son ədədini m[n – 1]
çıxaracağıq - bu, elementlərin bir mövqe sağa dövr etməsindən sonra ilk olacaq.
printf("%d",m[n-1]);
Sonra, sıfırıncı m[0]
-dan sonuncuya qədər m[n – 2]
bütün ədədləri çıxaracağıq.
for(i = 0; i < n - 1; i++) printf(" %d",m[i]); printf("\n");
Elementlərin yenidən düzülüşü ilə icraat
Tam ədəd massivi m elan edin.
int m[101];
Giriş ədədlərini m massivinə oxuyun.
scanf("%d",&n); for(i = 0; i < n; i++) scanf("%d",&m[i]);
Son elementi m[n – 1]
temp dəyişənində saxlayın.
temp = m[n-1];
Elementi m[i – 1]
-dən m[i]
-yə köçürün (1 ≤ i ≤ n – 1).
for(i = n - 1; i > 0; i--) m[i] = m[i - 1];
Massivin sonundakı elementi massivin başlanğıcına təyin edin.
m[0] = temp;
Nəticədə alınan massivi çıxarın.
for(i = 0; i < n; i++) printf("%d ",m[i]); printf("\n");
STL rotate ilə icraat
Tam ədəd vektoru elan edin.
vector<int> v;
Giriş məlumatlarını oxuyun.
scanf("%d", &n); v.resize(n); for (i = 0; i < n; i++) scanf("%d", &v[i]);
Massiv elementlərinin dövr etməsini həyata keçirin ki, son element ilk olsun.
rotate(v.begin(), v.begin() + n - 1, v.end());
Nəticədə alınan massivi çıxarın.
for (i = 0; i < n; i++) printf("%d ", v[i]); printf("\n");
Dinamik massiv ilə icraat
#include <stdio.h> int i, n, a; int *m; int main(void) { scanf("%d",&n); m = new int[n]; for(i = 0; i < n; i++) scanf("%d",&m[i]); printf("%d",m[n-1]); for(i = 0; i < n - 1; i++) printf(" %d",m[i]); printf("\n"); delete[] m; return 0; }
Java İcraatı
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); int m[] = new int[n]; for(int i = 0; i < n; i++) m[i] = con.nextInt(); System.out.print(m[n-1]); for(int i = 0; i < n - 1; i++) System.out.print(" " + m[i]); System.out.println(); con.close(); } }
Python İcraatı
n = int(input()) v = list(map(int, input().split())) v = v[-1:] + v[:-1] for num in v: print(num, end=" ") print()