牛顿迭代吗解决一个数的开方的整数部分

本文介绍了如何使用牛顿迭代法实现递归求解开方问题,展示了将复杂问题拆分成简单部分并逐步逼近解的过程,体现了微积分的核心思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实牛顿迭代法就是微积分,通过不断地迭代不断接近最终值,微积分是什么了?其实说到本质就是对一个问题进行无限的拆分,其最后一个小问题特别简单,基本就是无脑问题,
牛顿法实现递归:
n是一个被开方数
n=i*i,i就是被开方数
其实n/i==i成立,那么i就是开方数了
但是一般一次做不到,要多次慢慢来做
通过递归,其实重点是
(n/i+i)/2这个值更接近最终的开方根,就是通过不断计算这个,不断迭代,最后接近于i,接近于开方,
其实这就是微积分的思想,就是把一个事物进行不断地拆分,这就是数学上的微积分,这也就是微积分这么强大的原因
代码实现:

package com.fan.suanfati;

import java.util.Scanner;

/**
 * 牛顿法实现递归:
 * n是一个被开方数
 * n=i*i,i就是被开方数
 * 其实n/i==i成立,那么i就是开方数了
 * 但是一般一次做不到,要多次慢慢来做
 * 通过递归,其实重点是
 * (n/i+i)/2这个值更接近最终的开方根,就是通过不断计算这个,不断迭代,最后接近于i,接近于开方,
 * 其实这就是微积分的思想,就是把一个事物进行不断地拆分,这就是数学上的微积分,这也就是微积分这么强大的原因
 *
 */
public class test08 {
    public static void main(String[] args) {
        System.out.println("请输入要开方的数字:");
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();

        int v = (int) niuDunDieDai(i, i);
        System.out.println(v);

    }

    /**
     *
     * @param i  开方后的数字
     * @param n   一个本身的数字
     * @return
     */
    public   static   double   niuDunDieDai(double  i,double  n){
        double  result=(n/i+i)/2;
        if (result==i){
            return  i;
        }else {
            return   niuDunDieDai(result,n);
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值