c语言-这个C语言多项式就和问题,精确度不是太会。为啥就相差0.000512。请详细说明

问题描述

这个C语言多项式就和问题,精确度不是太会。为啥就相差0.000512。请详细说明

解决方案

改用double
调整计算顺序,不要先乘再除,尽量避免乘除法的精度损失

解决方案二:

 #include <iostream>

using namespace std;

double f1(int n)
{
    double r = 1;
    for (int i = 2; i <= n; i++)
        r *= (double)i;
    return r;
}

double f2(double x, int n)
{
    double r = 1;
    for (int i = 1; i <= n; i++)
        r *= x;
    return r;
}

double f3(int n, double x)
{
    double u = 0.5;
    for (int i = 1; i < n; i++)
    {
        u *= (0.5 - i);
    }
    return u * f2(x, n) / f1(n);
}

int main()
{
    double ps = 1;
    double x = 0.21;
    int n = 1;
    while (1)
    {
        double s = ps + f3(n, x);
        if (abs(s - ps) < 0.000001) break;
        ps = s;
    }
    cout << ps << endl;
}

解决方案三:

你没有贴你的代码出来,怎么让人分析你的问题呢?

时间: 2024-10-29 10:33:58

c语言-这个C语言多项式就和问题,精确度不是太会。为啥就相差0.000512。请详细说明的相关文章

编程c语言-用c语言带入已知数求多项式,这样不对,求大神解答

问题描述 用c语言带入已知数求多项式,这样不对,求大神解答 已知y0,y1,y3,y4,x0,x1,求abcd然后再求h,这样写对吗,不对应该怎么写 解决方案 最后的printf%s都改成%f 解决方案二: 输入值后没反应,怎么回事 解决方案三: 换行输入试试,弹出后换行.. 解决方案四: 你的abcdh的类型是float,输出float类型的变量要用%f,%s是输出字符串类型的 解决方案五: 最后格式符用错了,s是字符串的,应该用f.还有main实际是不规范的,尽量写int main吧,加个返

c语言编程 多项式加法-c语言编程中求多项式加法

问题描述 c语言编程中求多项式加法 多项式加法(5分) 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出. 程序要处理的幂最大为100. 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数.第一行一定是最高幂,最后一行一定是0次幂. 注意第一行和最后一行之间不一

C#语言与Java语言程序的比较

迈入二十一世纪以来,信息行业飞速壮大,其中在软件开发中Java语言与C#语言都独当一面,得到了逐步完善和广泛的应用,Java语言和C#语言都是一种面向对象的语言,但Java程序和C#程序还是有一定的区别. 下面分别是两种语言的程序的例子. 1.Java语言的基本程序: Import java.util.*; Package HelloJava{ Public class Message{ Public static void main(String [] args){ System.out.pr

c语言-用C语言编写能进行四则运算的程序

问题描述 用C语言编写能进行四则运算的程序 我想用C语言编一个能进行简单的四则运算的程序,应该怎么写,请详细解释一下输入和计算部分 解决方案 实现四则运算是比较简单的,你可以使用两个栈,一个栈用来存贮操作的数字(0~n),一个栈用来存储操作符(+-等).你先把四则运算表达式存为一个字符串,然后遍历各个字符,如果是数字,那就存起来,如果是操作符,那就与前一个操作符比较,看看优先级是不是比前一个大,如果是,那就存起来,如果不是,那就把数字栈里的前两个数按照前一个操作符进行运算.结果用一个变量保存起来

Thinkphp搭建包括JS多语言的多语言项目实现方法_php实例

本文实例讲述了Thinkphp搭建包括JS多语言的多语言项目实现方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 项目需要开发英文版,于是需要搭建多语言项目. 项目使用Thinkphp框架,隐约记得Thinkphp有多语言设置,翻看了帮助手册,果然有,这就边实验边开始: 二.实现方法: Thinkphp采用app_begain来检测和切换语言包,语言包和项目相关,构架等都比较简单,具体的这里:http://www.thinkphp.cn/info/188.html 搭建好了,就可以使用

r语言-对一个向量的划分,求C语言或R语言实现

问题描述 对一个向量的划分,求C语言或R语言实现 1C 向量U={123456}利用R1属性划分为:U/R1={{123}{456}}利用R2属性划分为:U/R2={{12}{3456}}利用R3属性划分为:U/R3={{1234}{56}}最后得到划分的交集:U/R={{12}{3}{4}{56}}

Swift语言指南(一)--语言基础之常量和变量

原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合

Swift语言指南(三)--语言基础之整数和浮点数

原文:Swift语言指南(三)--语言基础之整数和浮点数   整数   整数指没有小数的整数,如42,-23.整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零). Swift提供了8,16,32,64位形式的有符号和无符号的整数,这些整数遵循与C语言相似的命名规则.如8位无符号整数的类型为UInt8,32位有符号整数的类型为Int32,和Swift语言的其它类型一样,这些整型命名以大写字母开头.   整数的边界 你可以通过min或max属性为每一个整数类型指定一个最小值或最大值:

各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写

$amount = '12345.67'; $formatter = new \NumberFormatter('en_GB', \NumberFormatter::CURRENCY); echo 'UK: ' . $formatter->formatCurrency($amount, 'EUR') . '<br/>'; $formatter = new \NumberFormatter('de_DE', \NumberFormatter::CURRENCY); echo 'DE: '