PAT基礎程式設計題目集——6-9 統計個位數字
阿新 • • 發佈:2018-11-24
原題目:
本題要求實現一個函式,可統計任一整數中某個位數出現的次數。例如-21252中,2出現了3次,則該函式應該返回3。
函式介面定義:
int Count_Digit ( const int N, const int D );
其中N
和D
都是使用者傳入的引數。N
的值不超過int
的範圍;D
是[0, 9]區間內的個位數。函式須返回N
中D
出現的次數。
裁判測試程式樣例:
#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;//返回結果值 } }