使用矢量作为函数输出

时间:2017-02-24 13:17:45

标签: c++ function vector

我尝试编写代码时会显示具有以下特征的所有数字:

  • 号码本身是一个素数。

  • 对于从右侧删除的每个数字,剩余的数字仍应为素数。

考虑数字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

1 个答案:

答案 0 :(得分:0)

除了有关问题的评论之外,请查看show(n - 1)行。你不应该保存返回值:v = show(n - 1)

此外,最好将矢量作为参考传递,这样你就可以避免矢量内容的复制(在你的情况下它没有太大的影响,因为矢量不会增长太多,但想象使用大n)的值。