2012-01-24 9 views
4

私はコンピュータプログラミングを初めて使いました。私はこの仕事に助けが必要です。この単純なC++ソースコードをapple dylanコードに変換する必要があります。これは、元の数学的な文です:この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; 
} 

誰も私はリンゴのディランにこのコードを書くために助けることができますか?

幸運を祈り、 ポール

答えて

3

はここで、再帰的なソリューションです:

define method sumSquaresFromOne(n :: <integer>) 
    if (n = 1) 
    1 
    else 
    n *n + sumSquaresFromOne(n - 1) 
    end 
end method; 

(もちろん、それがn < 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; 
+0

完了:

は、次のようなmainメソッドを作成することができます。いくつかの役に立つリソース:http://opendylan.org/books/drm/とhttp://www.math.bas.bg/bantchev/place/rpn/rpn.dylan.html –

+0

ところで、イディオムディランのスペルは 'sum 「正方形から」。 –

関連する問題