1247 - C语言10.17

通过次数

0

提交次数

0

时间限制 : 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