我是计算机编程的新手。我需要帮助完成这项任务。我需要将这个简单的C ++源代码转换为apple dylan代码。这是原始的数学陈述:
Task: Input an integer number n and output the sum: 1+22+32+...+n2. Use input validation for n to be positive.
我用C ++编写了这段代码:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n < 0) return 1;
int sum = 0;
int i = 0;
while (i <= n) sum += i*i;
cout << sum;
return 0;
}
有人可以帮我把这段代码写入apple dylan吗?
祝福, 保罗
答案 0 :(得分:3)
这是一个递归解决方案:
define method sumSquaresFromOne(n :: <integer>)
if (n = 1)
1
else
n *n + sumSquaresFromOne(n - 1)
end
end method;
(显然,它可能会受益于某些检查n&lt; 1。)
要运行该方法,您将发出命令:
format-out("%d", sumSquaresFromOne(5))
其输出为“55”(1 + 4 + 9 + 16 + 25)。
您可以创建一个这样的主方法:
define method main(appname, #rest arguments)
format-out("Input an integer number n:")
let n = read-line(*standard-input*)
format-out("Sum of squares from t to %d is %d\n", n, sumSquaresFromOne(n))
exit(exit-code: 0);
end method;