PAT A1049計数ワンズ(30分)

トピックリンク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;
}
公開された288元の記事 ウォン称賛12 ビュー20000 +

おすすめ

転載: blog.csdn.net/Rhao999/article/details/104928856