题目:输入一个整数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; }
运行界面如下: