携代码前来学习! 第一题 0.82 @include <iostream> using namespace std; int main1() { long long num, tmp, reversedNum = 0, result = 0, reversedResult = 0; cin >> num; tmp = num; while (tmp > 0) { if (tmp % 10 != 0) { reversedNum = reversedNum * 10 + tmp % 10; } tmp /= 10; } tmp = reversedNum; while (tmp > 0) { result = result * 10 + tmp % 5; tmp /= 5; } tmp = result; while (tmp > 0) { reversedResult = reversedResult * 10 + tmp % 10; tmp /= 10; } cout << reversedResult; return 1; } 第二题 0.91 @include <iostream> using namespace std; int main2() { int n, m; cin >> n >> m; vector<int> cards(n); vector<long long> dp(m + 1, 0); for (int i = 0; i < n; i++) { int tmp; cin >> tmp; cards[i] = tmp; dp[tmp]++; } for (int i = 1; i <= m; i++) { for (auto c : cards) { if (i - c >= 1) { dp[i] += dp[i - c]; } } } cout << dp[m] % ((int)pow(10, 9) + 7); return 1; }