统计在从1到n的正整数中1出现的次数
1、最直观的想法,求1到n中每个整数中1出现的次数,然后相加即可。而求每个十进制整数中1出现的次数,我们先判断这个数的个位数是否是1,如果这个数大于10,除以10之后再判断个位数是否为1,循环直至求出该整数包含1的个数。
代码如下:
#include "stdafx.h"
#include "stdlib.h"
#include <iostream>
#include <string>
#include <stack>
#include <math.h>
using namespace std;
//某个整数中1出现的次数
int NumberOf1(unsigned int n)
{
int number = 0;
while(n)
{
if(n % 10 == 1)
number ++;
n = n / 10;
}
return number;
}
//求1到n中所有整数中1出现的总次数
int NumberOf1Between1AndN_Solution1(unsigned int n)
{
int number = 0;
for(unsigned int i = 1; i <= n; ++ i)
number += NumberOf1(i);
return number;
}
void main()
{
cout<