• *1008. 数组元素循环右移问题


     1 /*
     2  * Main.c
     3  * 1008. 数组元素循环右移问题    Ver.2
     4  *  Created on: 2014年8月29日
     5  *      Author: Boomkeeper
     6  ********测试通过*******
     7  */
     8 #include <stdio.h>
     9 
    10 int main(void) {
    11 
    12     int array[101];
    13     int n, m; //题目中的N、M
    14     int i,j;
    15 
    16     scanf("%i %i", &n, &m);
    17     getchar();
    18 
    19     for (i = 0; i < n; i++) {
    20         scanf("%i", &array[i]);
    21     }
    22     //将m限制在0~n的范围
    23 //    while (m > n) {
    24 //        m /= n;
    25 //    }
    26     //右移
    27     int temp;
    28     for(i=0;i<m;i++){
    29         temp = array[n-1];
    30         for(j=n-2;j>=0;j--){
    31             array[j+1] = array[j];
    32         }
    33         array[0] = temp;
    34     }
    35     //输出
    36     for(i=0;i<n;i++){
    37         if(i==0)
    38             printf("%i",array[i]);
    39         else
    40             printf(" %i",array[i]);
    41     }
    42     printf("
    ");
    43 
    44     return 0;
    45 }

    如果限制m在0~n的范围,题目提交就会报错,去掉可以通过。这样如果m > n,其实无效循环了好多遍...应该是多循环(m/n)*n遍吧...

     1 /*
     2  * Main.c
     3  * 1008. 数组元素循环右移问题    Ver.1
     4  *  Created on: 2014年8月29日
     5  *      Author: Boomkeeper
     6  ********部分通过*******
     7  */
     8 #include <stdio.h>
     9 
    10 int main(void) {
    11 
    12     int array[101];
    13     int n, m; //题目中的N、M
    14     int i;
    15 
    16     scanf("%i %i", &n, &m);
    17     getchar();
    18 
    19     for (i = 0; i < n; i++) {
    20         scanf("%i", &array[i]);
    21     }
    22     //将m限制在0~n的范围
    23     while (m > n) {
    24         m /= n;
    25     }
    26     //输出
    27     for (i = n - m; i < n; i++) {
    28         if (i == n - m)
    29             printf("%i", array[i]);
    30         else
    31             printf(" %i", array[i]);
    32     }
    33     for (i = 0; i < n - m; i++)
    34         printf(" %i", array[i]);
    35     printf("
    ");
    36 
    37     return 0;
    38 }

    这个算法就没有完全通过,不懂了...如果不限制m范围的话,就会数组越界。

    题目链接:

    http://pat.zju.edu.cn/contests/pat-b-practise/1008

    .

  • 相关阅读:
    2.4.4.1、Django新建APP(acounts)
    2.4.3、Django用户权限控制
    2.4.2、Django处理登录和注销
    2.4.1、Django使用内置的Admin管理用户
    2.4、使用Django自带的admin用户管理,权限管理
    2.3、django项目对数据库的操作
    2.2、创建第一个Django项目
    2、Django框架介绍
    github设置添加SSH(转)
    form表单回车提交问题
  • 原文地址:https://www.cnblogs.com/boomkeeper/p/1008b.html
Copyright © 2020-2023  润新知