求1到n的正数中1出现的次数
题目:输入一个整数n,求1到n这n个整数十进制表示中1出现的次数。
举例:输入12,从1到12这些整数中包含1的数字有1, 10, 11,和12,1一共出现了5次。
答:
#include "stdafx.h" #include <iostream> using namespace std; int Count(int num) { int count = 0; while (num) { if (1 == num % 10) { count++; } num = num /10; } return count; } int FindOneNumber(int n) { if (n <= 0) { return 0; } int total = 0; for (int i = 1; i <= n; i++) { total += Count(i); } return total; } int _tmain(int argc, _TCHAR* argv[]) { cout<<FindOneNumber(12)<<endl; return 0; }
运行界面如下: