使用循环生成新变量

时间:2014-04-16 22:00:58

标签: do-while

我再次,第二次海报,我已经喜欢这个社区了!

现在我遇到了一个功能问题。目标是使用函数=Problem1Function(MaxNumber)将输入值MaxNumber下的所有3的倍数和5的倍数相加。

要执行此操作,我将使用两个do-while循环,条件分别为(MultOfThree < MaxNumber)(MultOfFive < MaxNumber)

为此,我只需要知道如何在循环中生成新变量。我知道这意味着变量声明必须在循环中,但我不确定以下内容:

如何让循环每次都生成一个新的变量名?我需要这个,所以每个新变量(将是3或5的倍数)不会被覆盖,我最后可以总结它们。一个例子是MultOfThree1MultOfThree2MultOfThree3等的变量名称。然后在最后我可以将它们相加。

我已经开始使用我的功能代码了,我不认为发布它会有所帮助,但我会根据要求提供。

代码在excel VBA中。对不起忘了原帖。

1 个答案:

答案 0 :(得分:0)

好的,请在给出答案后阅读所有内容:不,没有办法创建变量名。

现在,我意识到这并没有回答你的问题,但是有一种更有效的方法可以使用高斯开发的代数和技巧来做到这一点。假设您的数字是46.您可以使用整数除法找到最大的三的倍数,这将截断结果。 46 / 3 * 3 = 45。当然,三的最低倍数是3,所以你的三个倍数是3,6,9,12,......和45.现在使用高斯的技巧来添加一系列数字n(n + 1)/2,(广义为倍数为n(n+a)/2a),您可以通过45(45+3)/(2*3)=360得到总数。按照相同的程序获得五的倍数,并将其添加到三的倍数,您将得到答案!

如果您仍然打算按照描述的方式进行操作,则必须使用数组(或者如果您使用的是C ++模板,则使用向量)。但是,我的方法需要相当少的处理时间并且更加优雅。像这样的优化是很好的知识和有趣的拼图!祝你好运!