質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

305閲覧

再帰呼び出しに関してTCOが有効になった時の実行方法

Casablanca_mtg

総合スコア209

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2018/09/28 05:04

お世話になります
下記のようなコードがあります
kotlinスタートアップP74~76の部分です

kotlin

1 fun sum(numbers: List<Long>): Long { 2 var sum = 0L 3 for (n in numbers) { 4 sum += n 5 } 6 return sum 7} 8tailrec fun sum(numbers: List<Long>, accumulator: Long = 0): Long = 9 if (numbers.isEmpty()) accumulator 10 else sum(numbers.drop(1), accumulator + numbers.first())

TCOが有効になったところでsum(1L..123456).toList())を実行するにはどのように記述すればよいのでしょうか?

前に質問しましたが理解できませんでしたので再度ご教授いただけませんか?
よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな漢字で、

Kotlin

1fun main(args: Array<String>) { 2 println(sum((1L..123456).toList())) 3} 4 5tailrec fun sum(numbers: List<Long>, accumulator: Long = 0): Long = 6 if (numbers.isEmpty()) accumulator 7 else sum(numbers.drop(1), accumulator + numbers.first())

投稿2018/09/28 13:47

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Casablanca_mtg

2018/09/28 23:58

有難うございます。main関数で出力させればいいのですね この部分の表現方法がよくわからずいろんなことを試していましたが・・・ ただ実行するとクラッシュしてしまいます Program was terminated after 10s.⌛️ accumulatorを設定してもクラッシュするのはなぜか?よくわかりませんが
hichon

2018/09/29 05:39

Webの実行サービスを使用しているようですが、実行時間の制限に引っかかったと思われます。 123456→123などに減らしてみて下さい。
Casablanca_mtg

2018/09/29 05:49

有難うございます。確かにそうです。初心者ですのでTry kotlinを使っていますためだと思います…12345までは表示されました。 有難うございました。もやもやしていたのがすっきりしました。これからも頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問