Scala实现a~b f(x)函数

xiaoxiao2021-02-28  125

类似于数学中,有个f(x),然后求指定a—b时f(x)的值 f(x)可以自定义

上代码

package com.ysk /** * Created by Y.S.K on 2017/8/31 in spark02. * 求a---b f(x) */ object sumfunc extends App { def sum(f: Int => Int)(a: Int)(b: Int): Int = { @annotation.tailrec def loop(n: Int, acc: Int): Int = { if (n > b) { println(s"n=${n},acc=${acc}") acc } else { println(s"n=${n},acc=${acc}") loop(n + 1, acc + f(n)) } } loop(a, 0) } sum(x => x)(1)(5) sum(x => x * x)(1)(5) sum(x => x * x * x)(1)(5) val sumSquare = sum(x => x * x * x) _ sumSquare(1)(5) }

输出结果

n=1,acc=0 n=2,acc=1 n=3,acc=3 n=4,acc=6 n=5,acc=10 n=6,acc=15 n=1,acc=0 n=2,acc=1 n=3,acc=5 n=4,acc=14 n=5,acc=30 n=6,acc=55 n=1,acc=0 n=2,acc=1 n=3,acc=9 n=4,acc=36 n=5,acc=100 n=6,acc=225 n=1,acc=0 n=2,acc=1 n=3,acc=9 n=4,acc=36 n=5,acc=100 n=6,acc=225

转载请注明原文地址: https://www.6miu.com/read-37634.html

最新回复(0)