1. 程式人生 > >PAT基礎程式設計題目集——6-9 統計個位數字

PAT基礎程式設計題目集——6-9 統計個位數字

原題目:

本題要求實現一個函式,可統計任一整數中某個位數出現的次數。例如-21252中,2出現了3次,則該函式應該返回3。

函式介面定義:

int Count_Digit ( const int N, const int D );

其中ND都是使用者傳入的引數。N的值不超過int的範圍;D是[0, 9]區間內的個位數。函式須返回ND出現的次數。

裁判測試程式樣例:

#include <stdio.h>

int Count_Digit ( const int N, const int D );

int main()
{
    int N, D;
	
    scanf("%d %d", &N, &D);
    printf("%d\n", Count_Digit(N, D));
    return 0;
}

/* 你的程式碼將被嵌在這裡 */

輸入樣例:

-21252 2

輸出樣例:

3

 分析:

1.通過模除計算每一位的值是否與要判斷的值相等,計算其個數,可通過fabs(),將除0以外的數全部轉換成整數,方便計算,對於0則單獨處理

程式碼:

int Count_Digit ( const int N, const int D )
{
  int i=0,k;
  k=fabs(N);//絕對值函式
  if(N==0)//對於0的情況單獨處理
  {
    if(N==D)
    {
      return 1;
    }
    else
    {
      return 0;
    }
  }
  else//非0的處理
  {
    while(k!=0)//迴圈每一位,迴圈結束條件最後一位為0
    {
      if((k%10)==D)//模除判斷是否為該值
      {
        i++;
      }
      k=k/10;//通過除法降低位數
    }
    return i;//返回結果值
  }
}