1247 - C语言10.17
时间限制 : 1 秒
内存限制 : 32 MB
输入n个整数,使前面的n-m个数顺序向后移动m个位置,最后的m个数变成最前面的m个数。通过函数实现以上的功能。
题目输入
第一行包含两个用空格隔开的整数n和m,保证n>m且n不超过50。第二行包含n个用空格隔开的整数。
题目输出
输出进行题目描述操作之后的n个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
6 2 1 2 3 4 5 6
输出格式
5 6 1 2 3 4
C语言解答
#include<stdio.h> int main() { int n,m,a[50],i; scanf("%d %d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-m;i<n;i++) printf("%d ",a[i]); for(i=0;i<n-m;i++) printf("%d ",a[i]); printf("\n"); return 0; }
C++解答
#include <stdio.h> int main() { void update(int x[], int n, int m); int a[50]; int n, m, i; scanf("%d %d", &n, &m); for (i = 0;i < n;i++) scanf("%d", &a[i]); update(a, n, m); for (i = 0;i < n;i++) printf("%d ", a[i]); printf("\n"); return 0; } void update(int x[], int n, int m) { int tmp[50]; int i; for (i = 0;i < n;i++) tmp[i] = x[i]; for (i = n - m - 1;i >= 0;i--) x[i + m] = x[i]; for (i = 0;i < m;i++) x[i] = tmp[i + (n - m)]; }
Java解答
import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int n = s.nextInt() ; int m = s.nextInt() ; if(n>m){ int a[] = new int[n] ; for (int i = 0; i < n; i++) { a[i] = s.nextInt() ; } for(int i = n-m ; i<n ; i++){ System.out.print(a[i]+" ") ; } for (int i = 0; i < n-m; i++) { System.out.print(a[i]+" "); ; } System.out.println() ; } } }
Python解答
import sys n, m = map(int, raw_input().split()) a = raw_input().split() for i in range(n - m, len(a) + n - m): if i >= len(a): i -= len(a) sys.stdout.write(str(a[i]) + ' ') print