【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】
题目:
输入整数n,计算从1到n这个n个整数的十进制表示中1出现的次数和
题目分析:
一、其实问题可以转换成求一个数中1出现的次数,则涉及到基本的取余和除法运算
算法实现:
#include <stdio.h>
/*
** 计算整数@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));
}