groovy:java.math.BigInteger 计算 斐波那契数列

import java.math.BigInteger; 计算 斐波那契数列(Fibonacci sequence)。

编写  fibon.groovy  如下

// 使用 groovy的 Memoize注解实现函数的记忆化
import java.math.BigInteger;
import groovy.transform.Memoized

@Memoized
def fib(n) {
    if (n < 2) return n;
    return fib(n-1) + fib(n-2)
}

def n = new BigInteger("200");
println "fib(${n})= " +fib(n);

运行 groovy fibon 

fib(200)= 280571172992510140037611932413038677189525

如果改为 fib(300) 就会报错:溢出

计算 斐波那契数列(Fibonacci sequence),不受长整型位数限制。

编写  fibonacci.groovy  如下

import java.math.BigInteger;

public class Fi
`java.lang.NoSuchMethodError` 错误通常表示在运行时,Java虚拟机(JVM)找不到类的特定方法。这往往是由于类版本不兼容导致的,即编译时使用的类版本和运行时使用的类版本不一致。针对 `java.lang.NoSuchMethodError: 'java.math.BigInteger org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth.getW()'` 错误,以下是一些可能的解决方法: ### 1. 检查依赖版本 确保项目中所有依赖的库版本是兼容的。在使用 Apache POI 相关库时,`org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth` 类通常由 `ooxml-schemas` 库提供。可能存在不同版本的 POI 库和 `ooxml-schemas` 库不兼容的情况。 可以通过以下步骤检查和更新依赖: - **Maven项目**:在 `pom.xml` 文件中,确保所有 POI 相关依赖的版本一致。例如: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.3</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>4.2.3</version> </dependency> ``` - **Gradle项目**:在 `build.gradle` 文件中,调整依赖版本: ```groovy implementation 'org.apache.poi:poi-ooxml:5.2.3' implementation 'org.apache.poi:ooxml-schemas:4.2.3' ``` ### 2. 清理和重建项目 有时候,项目的构建缓存可能会导致类版本不一致的问题。可以尝试清理项目的构建缓存并重新构建项目: - **Maven项目**:在命令行中执行以下命令: ```sh mvn clean install ``` - **Gradle项目**:执行以下命令: ```sh gradle clean build ``` ### 3. 检查类路径 确保项目的类路径中没有重复的库或者冲突的库。有时候,不同的依赖可能会引入相同类的不同版本,导致运行时冲突。可以使用工具如 `mvn dependency:tree`(Maven项目)或 `gradle dependencies`(Gradle项目)来查看依赖树,找出潜在的冲突。 ### 4. 检查代码是否使用了错误的类版本 确认代码中是否有手动引入旧版本的类或者库。有时候,即使依赖配置正确,代码中手动引入的旧版本类也会导致 `NoSuchMethodError` 错误。 ### 5. 排除冲突依赖 如果发现有冲突的依赖,可以在 `pom.xml` 或 `build.gradle` 中排除冲突的依赖。例如,在 Maven 中: ```xml <dependency> <groupId>some.group</groupId> <artifactId>some-artifact</artifactId> <version>1.0</version> <exclusions> <exclusion> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> </exclusion> </exclusions> </dependency> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值