| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 80560 | sh25_huangse | 数1的个数 | C++ | 通过 | 0 MS | 256 KB | 766 | 2026-01-04 15:22:08 |
#include <iostream> using namespace std; int main() { int n; cin >> n; int count = 0; int factor = 1; // 从个位开始 while (n / factor != 0) { int lower = n % factor; // 当前位右边的低位部分 int cur = (n / factor) % 10; // 当前位的数字 int higher = n / (factor * 10); // 当前位左边的高位部分 // 根据当前位的值分类讨论 if (cur == 0) { count += higher * factor; } else if (cur == 1) { count += higher * factor + lower + 1; } else { count += (higher + 1) * factor; } factor *= 10; // 处理下一位 } cout << count << endl; return 0; }