好久没登录PTA写题目了,最近开始打算坚持每天在PTA上写一道题目,通过博客来对自己的题目进行总结。
这次做的题目如下:
以下是我第一次提交的代码:
#include<stdio.h> int main(void) { int i,n,m,t; scanf("%d %d",&n,&m); getchar(); t=m+n; int a[t]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-1;i>=0;i--) a[i+m]=a[i]; for(i=0;i<m;i++) a[i]=a[i+n]; for(i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d",a[i]); return 0; }
错误挺明显的,我想大家应该都看出来了,第一次提交的代码没有考虑到M比N大的情况,但是当时我竟然没想那么多就提交了。
经过修改后,第二次提交就AC了,以下是第二次的正确代码:
#include<stdio.h> int main(void) { int i,n,m,t; scanf("%d %d",&n,&m); getchar(); while(m>n) m=m%n; t=m+n; int a[t]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-1;i>=0;i--) a[i+m]=a[i]; for(i=0;i<m;i++) a[i]=a[i+n]; for(i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d",a[i]); return 0; }
以上就是我的方法。