2016蓝桥杯第九题

来源:互联网 发布:win10 软件兼容 编辑:程序博客网 时间:2024/05/16 08:23
第一次直接冒泡,发现没这么简单。不过也是挺简单的,毕竟几个数都是从1开始到n的,标记下标和数值,两个数组,排列一下就ok的
#include<stdio.h>int main(){    int i,t;    int sum[1020],sum2[1020];    while(scanf("%d",&t)!=EOF)    {        int ans=0;              for(i=1;i<=t;i++)               {                scanf("%d",&sum[i]);                sum2[sum[i]]=i;               }               for(i=1;i<=t;i++)               {                   if(sum2[i]!=i)                   {                       sum2[sum[i]]=sum2[i];                       sum[sum2[i]]=sum[i];                       ans++;                   }               }                printf("%d\n",ans);    }    return 0;}

0 0