酷代码 AI
菜单

你拥有对数字实施魔法的能力,有一天,你接到了一个任务。需要施展魔法,将正整数 a 变成正整数 b。你决定使用以下三种魔法,每一种魔法均可施展任意次: 1. 删除数a的个位,即a=a/10; 2. 在数a的末尾增加一个0,即a=a*10; 3. 将数a的个位修改为另一个数。 每施展一次魔法,均需消耗 K 单位能量。现想要知道,完成该任务,你最少消耗多少单位能量。 输入格式 输入共三行,依次为三个正整数 a, b, k。 输出格式 输出一个整数,代表最少消耗多少单位能量。 用C++

```cpp #include <iostream> #include <string> #include <algorithm> #include <climits> using namespace std; int main() { string a, b; int k; cin >> a >> b >> k; int minCost = INT_MAX; for (int i = 0; i <= a.length(); i++) { string prefix = a.substr(0, a.length() - i); for (int j = 0; j <= b.length(); j++) { if (j > prefix.length()) continue; if (prefix.substr(0, j) != b.substr(0, j)) continue; int cost = i * k; cost += (b.length() - j) * k; if (j < prefix.length() && j < b.length()) { if (prefix[j] != b[j]) { cost += k; } } minCost = min(minCost, cost); } } cout << minCost << endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 字符串索引越界问题需要仔细检查 2. 子串比较时要确保长度有效 3. 边界情况如空字符串需要特殊处理 [2025-11-23 20:48:50 | AI写代码神器 | 277点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多