提交时间:2023-05-20 17:20:19
运行 ID: 74166
#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; }