【申明:本文僅限於自我歸納總結和相互交流,有纰漏還望各位指出。 聯系郵箱:[email protected]】
題目:
輸入整數n,計算從1到n這個n個整數的十進制表示中1出現的次數和
題目分析:
一、其實問題可以轉換成求一個數中1出現的次數,則涉及到基本的取余和除法運算
算法實現:
#include/* ** 計算整數@m中包含數字@digit的個數 */ int count_digit_num(int m, int digit) { int count = 0; while(m) { if(m%10 == digit) count++; m = m/10; } return count; } int count_digit_one(int m) { int i=0; int count = 0; for(; i<=m; i++) { count += count_digit_num(i, 1); } return count; } int main(int argc, char *argv[]) { int m = atoi(argv[1]); printf("%d----->%d\n", m, count_digit_one(m)); }