The task is simple: given any positive integer?N, you are supposed to count the total number of 1's in the decimal form of the integers from 1 to?N. For example, given?N?being 12, there are five 1's in 1, 10, 11, and 12.
Each input file contains one test case which gives the positive?N?(≤230).
Output Specification:
For each test case, print the number of 1's in one line.
12
Sample Output:
5
编译软件:visual studio
编译语言:c语言
参考代码:
#include<cstdio>
int main() { ?? ?int n, a = 1, ans = 0; ?? ?int left, now, right; ?? ?scanf("%d", &n); ?? ?while (n / a != 0) ?? ?{ ?? ??? ?left = n / (a * 10); ?? ??? ?now = n / a % 10; ?? ??? ?right = n % a; ?? ??? ?if (now == 0) ?? ??? ??? ?ans += left * a; ?? ??? ?else if (now == 1)ans += left * a + right + 1; ?? ??? ?else ans += (left + 1) * a; ?? ??? ?a *= 10; ?? ?} ?? ?printf("%d\n", ans); ?? ?return 0; }
|