トピックリンク:https://pintia.cn/problem-sets/994805342720868352/problems/994805430595731456
描述题目
タスクは簡単です:N整数任意の正の与えられた、あなたは、例えば、1からNまでの整数の十進形式での1の合計数をカウントすることになっている、Nが12であることを考えると、5 1つのは、1であります10、11、及び12。
输入
各入力ファイルは、正N(^ 30≤2)を与える一つのテストケースを含んでいます。
输出
各テストケースについて、1つのラインの1つの数を印刷します。
サンプル入力
12
サンプル出力
5
コード
#include <cstdio>
int main() {
int n, a = 1, ans = 0;
int left, right, now;
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", ans);
return 0;
}