貌似网上搜的都一样的版本(有错...貌似还不少).先把代码弄上来,如果POJ的SPJ没错的话,这代码就应该没错了.POJ 3239
有时间好好整理一下再把规则写一下.
- #include "stdio.h"
- int main()
- {
- int n,k;
- int i;
- while(scanf("%d",&n)){
- if(n==0){
- break;
- }
- if(n%6!= 2){
- if(n&1){
- for(i=2;i< =n-1;i+=2){
- printf("%d ",i);
- }
- for(i=1;i< =n;i+=2){
- printf("%d ",i);
- }
- }
- else{
- for(i=2;i< =n;i+=2){
- printf("%d ",i);
- }
- for(i=1;i< =n-1;i+=2){
- printf("%d ",i);
- }
- }
- }
- else{
- k=n/2;
- if(k&1){
- for(i=k;i< =n-1;i+=2){
- printf("%d ",i);
- }
- for(i=1;i< =k-1;i+=2){
- printf("%d ",i);
- }
- for(i=k+3;i< =n;i+=2){
- printf("%d ",i);
- }
- for(i=2;i< =k+1;i+=2){
- printf("%d ",i);
- }
- }
- else{
- for(i=k;i< =n;i+=2){
- printf("%d ",i);
- }
- for(i=2;i< =k-2;i+=2){
- printf("%d ",i);
- }
- for(i=k+3;i< =n-1;i+=2){
- printf("%d ",i);
- }
- for(i=1;i< =k+1;i+=2){
- printf("%d ",i);
- }
- }
- }
- printf("/n");
- }
- return 0;
- }