Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
74166 | 陈路垚 | 位运算 | C++ | 通过 | 100 | 0 MS | 252 KB | 523 | 2023-05-20 17:20:19 |
#include <iostream> using namespace std; int digitSum(int n) { // 计算各个位上的数字之和 int sum = 0; while (n > 0) { sum += n % 10; n /= 10; } return sum; } int main() { int n; cin >> n; int k = digitSum(n); int max_S = -1; for (int s = n-1; s >= 0; s--) { // 从大到小枚举可能的答案 S if (digitSum(s) == k-1) { max_S = s; break; } } cout << max_S << endl; return 0; }