你把代码贴出来 好修改
动态规划解决。
#include <stdio.h>
#define INF 9999999
int main() {
int dp[2022]; // dp数组,用于保存拼出每个数字需要的最少卡片数量
// 初始化dp数组
dp[0] = 0;
for (int i = 1; i <= 2021; i++) {
dp[i] = INF;
}
int cards[10] = {2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021}; // 每种卡片的数量
for (int num = 1; num <= 9; num++) {
for (int i = num; i <= 2021; i++) {
dp[i] = dp[i] < (dp[i - num] + 1) ? dp[i] : (dp[i - num] + 1); // 更新dp[i]
}
}
int maxNum = 0;
for (int i = 1; i <= 2021; i++) {
if (dp[i] != INF && cards[i % 10] >= dp[i]) {
maxNum = i;
}
}
printf("小蓝可以从1拼到%d\n", maxNum);
return 0;
}
你代码逻辑梳理清楚,你这n循环前面10次是XX--,后面99990次都是打印error
分析:当你在循环中使用一个变量n时,它的值是在每次循环迭代时动态变化的,因此在使用switch(n)时可能会出现问题。这是因为switch语句要求在case标签中指定常量表达式,而动态变化的变量n在每次循环迭代时其值都可能不同,因此无法直接用于switch语句中。
为了解决这个问题,你可以考虑使用其他方法来控制循环中的不同情况,例如使用多个if/else语句,来映射不同的变量值和相应的操作。
建议代码截图给完整一些。
第258行:if(10 <= n < 100) 这样写有问题,应修改为:if (10 <= n && n < 100)
感觉逻辑有点乱,建议先理清思路
回答部分参考、引用ChatGpt以便为您提供更准确的答案:
根据您的描述,您遇到了在使用adb命令获取安卓页面节点时偶尔出现目标app页面节点空白的问题。您提到重启app或切换到主页后再打开app可以解决该问题,因此想知道是否有可能通过重启UI Automator Viewer来重新获取节点。
UI Automator Viewer是用于查看和分析安卓应用程序的UI布局和元素的工具,并不直接与节点加载相关联。因此,重启UI Automator Viewer本身并不会对节点加载产生影响。
您遇到的问题可能是由于页面加载或节点解析时的临时错误导致的。这可能与网络连接、页面加载速度、节点解析算法等因素有关。
解决这个问题的方法可以尝试以下几点:
总的来说,通过增加延时、使用重试机制和尝试不同的节点获取方法,可以提高获取节点的成功率和稳定性,以解决您遇到的问题。
希望这些建议对您有帮助!如果您有任何其他问题,请随时提问。
控制台有输出行的数量限制,你把循环变量n的结束条件改小点看看