我尝试编写代码时会显示具有以下特征的所有数字:
号码本身是一个素数。
对于从右侧删除的每个数字,剩余的数字仍应为素数。
考虑数字293例如:293本身是素数,如果我们删除右边的数字,我们有29仍然是素数,如果我们再次删除右数字,我们有2仍然是素数。
我尝试编写一个代码,该代码从用户那里得到整数n <= 8,并显示具有上述特征的所有n位数字。我的算法是编写一个返回向量@RequestMapping(value = "downloadCvs/{id}/{timestamp}", method = RequestMethod.POST)
public void getCsv(HttpServletResponse response, @PathVariable String id, @PathVariable String timestamp) {
response.setContentType("text/csv");
String reportName = "CSV_Report_Name_What_you_Want.csv";
response.setHeader("Content-disposition", "attachment;filename="+reportName);
response.getOutputStream().print(createCsv(id));
response.getOutputStream().flush();
}
的递归函数(show
)。
如果v
那么它只显示数字2-3-5-7 ...如果n=1
它应该调用n!=1
并将所有生成的数字乘以10并添加它们奇数...然后它应检查新数字是否为素数。如果是这样,它应该被添加到向量中。
我的问题是代码仅适用于show(n-1)
。这是我的代码:
n=1
答案 0 :(得分:0)
除了有关问题的评论之外,请查看show(n - 1)
行。你不应该保存返回值:v = show(n - 1)
?
此外,最好将矢量作为参考传递,这样你就可以避免矢量内容的复制(在你的情况下它没有太大的影响,因为矢量不会增长太多,但想象使用大n
)的值。