Hellenjiayouo 2013-07-22 02:29 采纳率: 0%
浏览 1026

java 基础编程题,急求结果

1,int isVesuvian(int n),如果n是有且仅是两组不同的两个数的平方和,返回1,否则0.

2,int isOneBalanced(int a[]),判读数组是否是平衡数组,开头连续为1的数 + 结尾连续为1的数 = 中间连续不为1的数 结果返回1,否则为0.

3,int closestFibonacci(int n),返回比n小的最大的斐波拉契元素。斐波拉契数列 1 1 2 3 5 8 13 21 34
PS:1 1 2 3 5 8 13 21 34....第三个数等于前两个数之和

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 10:04
    关注

    第一题

    public int isVesuvian(int n) {
        // 从2开始枚举i
        for (int i = 2; i <= Math.sqrt(n); i++) {
            // 从i开始枚举j
            for (int j = i; j <= Math.sqrt(n); j++) {
                if (i * i + j * j == n) {
                    // 如果i和j相同或者i和j的平方和等于n,返回1
                    return 1;
                }
            }
        }
        // 如果没有找到i和j,返回0
        return 0;
    }
    

    第二题

    public int isOneBalanced(int[] a) {
        // 如果数组长度小于3,返回0
        if (a.length < 3) {
            return 0;
        }
        // 初始化开头连续为1的数和结尾连续为1的数
        int start = 0, end = 0;
        // 初始化中间连续不为1的数
        int middle = 0;
        // 找到开头连续为1的数
        while (a[start] == 1) {
            start++;
        }
        // 找到结尾连续为1的数
        while (a[a.length - 1 - end] == 1) {
            end++;
        }
        // 找到中间连续不为1的数
        middle = a.length - start - end;
        // 如果开头连续为1的数 + 结尾连续为1的数 = 中间连续不为1的数,返回1
        if (start + end == middle) {
            return 1;
        }
        // 否则返回0
        return 0;
    }
    

    第三题

    public int closestFibonacci(int n) {
        // 初始化斐波拉契数列的前两项
        int f1 = 1, f2 = 1;
        // 循环求出斐波拉契数列的后续项
        while (f2 < n) {
            int temp = f2;
            f2 = f1 + f2;
            f1 = temp;
        }
        // 返回比n小的最大的斐波拉契数
        return f1;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘