java经典算法_018有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

package wzs.arithmetics;

//题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
public class Test_wzs18
{
    public static void main(String[] args)
    {
        float fz = 1f;// 分子
        float fm = 1f;// 分母
        float temp;
        float sum = 0f;
        for (int i = 0; i < 20; i++)
        {
            temp = fm;
            fm = fz;
            fz = fz + temp;
            sum += fz / fm;
        }
        System.out.println("sum=" + sum);
    }
}

输出结果:

sum=32.660263



### 回答1: 这是一个求和问题,可以使用循环来计算。 代码如下: ``` int n = 10; // 假设 n = 10 double t = ; // 初始化 t for (int i = 1; i <= n; i++) { t += 1. / i; // 每次循环累加 1/i } System.out.println("t = " + t); // 输出结果 ``` 输出结果为: ``` t = 2.9289682539682538 ``` 因为这个序列是调和级数,其和是无限的,但是随着 n 的增大,其和会越来越接近于自然对数的常数 e。 ### 回答2: 这是一个求和问题,需要计算 t = 1 + 1/2 + 1/3 + ... + 1/n 的值。 我们可以使用循环来解决这个问题。首先,我们定义一个变量 sum,并将其初始化为 0。然后,我们使用一个 for 循环来遍历从 1 到 n 的所有整数。在每次循环中,我们将当的整数 i 取倒数并加到 sum 中。 下面是使用 Java 代码实现这个计算的例子: ```java public class SumCalculation { public static void main(String[] args) { int n = 10; // 假设 n = 10 double sum = 0.0; // 初始化 sum for (int i = 1; i <= n; i++) { sum += 1.0 / i; // 求倒数并累加到 sum } System.out.println("t = " + sum); // 输出结果 } } ``` 在以上示例代码中,我们假设 n 的值为 10。经过循环计算,最后得到的 sum 值为 t 的结果。根据题目要求,将结果输出即可。 这个算法的时间复杂度为 O(n),其中 n 是计算的上限数。 ### 回答3: 要计算t=1 1/2 1/3... 1/n,可以使用一个循环来实现。 首先,定义一个变量sum来存储计算结果,并初始化为0。然后,使用一个循环从1到n,每次循环将当的分数加到sum上。 具体的实现如下: ``` int n = 10; // 设定n的值为10 double sum = 0; // 初始化sum为0 for (int i = 1; i <= n; i++) { sum += 1.0 / i; // 将当分数加到sum上 } System.out.println("计算结果为:" + sum); ``` 以上代码中,`1.0 / i`表示将i转换为浮点数,这样可以得到精确的小数结果。最后,使用println函数将计算结果输出。 如果将n设置为10的话,计算结果为: ``` 计算结果为:2.9289682539682538 ``` 这个结果表示t=1 1/2 1/3... 1/10的和为2.9289682539682538。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值