qq_38692022
qq_38692022
2018-10-25 05:03
采纳率: 70%
浏览 1.2k
已采纳

java的简单自定义函数问题

package test2;

import java.util.Scanner;

public class test {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double b = sc.nextInt();
int sum = qiuhe(b);
System.out.printf("结果为"+sum);
}
public static int qiuhe(double b)
{
int he = 0;
for(int i=1;i<=b;i++)
{
he+=Math.pow(-1, i-1)*(1/i);
}
return he;
}
}

这是我的代码 我想求的是 1-1/2+1/3-1/4.。。。。的前n项的和 但是我这个代码在软件上无法运行,求大家帮我解决一下
我不懂怎么做自定义的函数 希望高手help一下

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • hjy_bamboo
    JoeLemonade 2018-10-25 06:34
    已采纳

    我就仅仅改下原代码的问题哈
    1. 方法中生命he变量为int类型是不合适的,由于求的值为小数,应该使用double好一点;
    2. 在for循环内部的计算式中,由于i为整型,则1/i的计算结果也是整型,会丢失精度,直接改成除法;
    如下图所示:
    图片说明
    希望采纳哈

    点赞 评论
  • qq_27619637
    -syso- 2018-10-25 05:34

    public static double add(int b) {
    double sum = 0;
    while (b != 0) {
    sum += (1.0 / (b - 1) - 1.0 / b);
    b -= 2;
    }
    System.out.println(sum);
    return sum;
    }

    这个只能处理偶数项,即bwe偶数,
    public static double add(int b) {
        double sum = 0;
        if (b % 2 == 1) {
            sum = 1.0 / b;
            b--;
        }
        while (b != 0) {
            sum += (1.0 / (b - 1) - 1.0 / b);
            b -= 2;
        }
        System.out.println(sum);
        return sum;
    }
    这个可以处理奇数
    
    点赞 评论
  • msx985211
    创业的鱼 2018-10-25 05:51
    public double sum(int index)
    {
        double res = 0;
    
        for (int i = 1; i <= index; i++)
        {
            res += (i % 2 == 0) ? -(1d / i) : (1d / i);
        }
    
        return res;
    }
    
    
        要对多少项进行求和,index就传几
    
    点赞 评论
  • p312011150
    p312011150 2018-10-25 06:15

    Math.pow(-1, i-1)*((double)1/i); 加个double 强制转换下转换,不转的换默认整形

    点赞 评论
  • Lxinccode
    Lxinccode 2018-10-25 06:50

    无法运行是进入带输入状态了吧,你得键入数据啊

    点赞 评论
  • HXNLYW
    葫芦胡 2018-10-25 07:52

    测试是可以运行的,估计是你没有输入数据吧,可以加一个输出提示
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入数字:");
    double b = sc.nextInt();

    点赞 评论

相关推荐