Java实现Prim算法时for循环i计数错误导致输出日期重复问题
你的问题根源是直接使用循环变量i作为日期编号,当单日工作量超过8小时时会输出2条记录,但循环变量每轮仅自增1,因此会出现日期重复的情况。你只需要新增一个独立的日期计数器,专门维护输出的日期编号即可。
修正后代码
// 新增独立的日期计数器,初始值为1 int dayCount = 1; for (int i = 1; i < graph.getNumOfNodes(); i++) { double distance = ((int)graph.getEdges(i) - 8); if (graph.getEdges(i) <= 8){ System.out.println("Day " + dayCount + ". " + "Number of hours worked " + (int)graph.getEdges(i) + "/8 per day. Finished kilometers: " + (int)graph.getEdges(i) ); // 每输出一条记录,日期计数自增1 dayCount++; } else if (graph.getEdges(i) > 8) { System.out.println("Day " + dayCount + ". " + "Number of hours worked 8/8 per day. Finished kilometers: 8. " + "Missing to complete: " + (int)distance); dayCount++; System.out.println("Day " + dayCount + ". " + "Number of hours worked " + (int)distance + "/8 per day. Finished kilometers: " + (int)distance); dayCount++; } }
调整说明
- 新增
dayCount变量作为独立的日期计数,不再复用循环变量i作为日期编号 - 每输出一行日志就将
dayCount自增1,保证所有输出的日期编号连续不重复,完全匹配你给出的预期输出结果
内容的提问来源于stack exchange,提问作者Anket.
相关产品推荐
相关产品推荐

