1024某校大門外長度為L的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1米。我們可以把馬路看成一個數軸,馬路的一端在數軸0的位置,另一端在L的位置;數軸上的每個整數點,即0,1,2,……,L,都種有一棵樹。 由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止點的坐標都是整數,區域之間可能有重合的部分。現在要把這些區域中的樹(包括區域端點


#include<stdio.h>

int main()

{

  int L, M, i, j, n;

  int a[10001], b[10001];

  scanf("%d %d",&L, &M); //輸入L和M

  n = M*2;//循環輸入b數組0~n的數據

  for(i=0; i<n; i+=2)

    {

     scanf("%d %d", &b[i], &b[i+1]);

       }

    for(i=0; i<=L; i++) //循環給a數組L個元素賦值

    {

     a[i] = i;

       }

       int r, s;

    for(i=0; i<n; i+=2) //遍歷訪問數組b的各個區間

  {

               r = b[i]; //區間起始點

    s = b[i+1]; //區間終點

    for(j=r; j<=s; j++) //把數組b各個區間內元素在數組a中映射為0

    {

       a[j] = -1;

    }

   }

   int k=0; //k用來統計不是0的個數,k賦值為1(數組a中原本包含一個0,此時加上)

  for(i=0; i<=L; i++)

   {

     if(a[i] != -1)

     {

      k++; //用來統計非0的個數,即不在數組b區間內的數的個數

    }

   }

   printf("%d", k);

  return 0;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM