wjiouwrjh 2022-11-15 10:50 采纳率: 100%
浏览 66
已结题

XDOJ迭代法求根,两种方法有什么不一样的吗

XDOJ迭代法求根
题目:迭代法求根(1)
时间限制:1S
内存限制:10000Kb
问题描述:
用迭代法求 ,求平方根的迭代公式为

要求前后两次求出的x的差的绝对值小于 。
输入说明:
输入浮点数a。
输出说明:
输出一个浮点数x,小数点后保留5位小数。
输入样例:
3
输出样例:
1.73205

第一个是错误答案

#include<bits/stdc++.h>
using namespace std;
int main(){
    double a,x1=1,x2=0;
    scanf("%lf",&a);
    while(fabs(x2-x1)>=0.00001){
        x2=(x1+a/x1)/2;
        x1=x2;
    }
    printf("%.5lf\n",x2);
    return 0;

}

下面是正确的代码


#include <stdio.h>
int main()
{
    double a,x,t;
    scanf("%lf",&a);
    t=a;
    x=(a+1)/2;
     while(t-x>=0.00001)
     {
         t=x;
         x=(x+a/x)*0.5;
     }
     printf("%.5lf",x);
    return 0;
}

这是第一份代码错误的结果

img

两个代码有什么区别吗,精度问题?

  • 写回答

1条回答 默认 最新

  • 云云豆酱 2022-11-15 14:14
    关注

    整数与整数相除只能得到整数,要想保留小数,就必须把一个数改成小数,这里把2改成2.0应该就行了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退