真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言用級(jí)數(shù)計(jì)算函數(shù) 計(jì)算級(jí)數(shù)和c++寫法

C語(yǔ)言求級(jí)數(shù)

#include stdio.h

成都創(chuàng)新互聯(lián)主營(yíng)高臺(tái)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),高臺(tái)h5小程序設(shè)計(jì)搭建,高臺(tái)網(wǎng)站營(yíng)銷推廣歡迎高臺(tái)等地區(qū)企業(yè)咨詢

double fun(double x,int n)

{

double result = 1.0;

double item = 1.0;

int i;

for (i = 1; i = n; i++)

{

item = item * x / i;

result += item;

}

return result;

}

int main()

{

double x;

int n;

scanf("%lf%d",x,n);

printf("%lf\n",fun(x,n));

}

C語(yǔ)言程序設(shè)計(jì),用級(jí)數(shù)計(jì)算圓周率π

我寫過(guò)精確10000多位的,但代碼太多無(wú)法在此列出,我給你提供一個(gè)思路:

定義長(zhǎng)度為固定值的字節(jié)的數(shù)組當(dāng)做一個(gè)“大整數(shù)型”,長(zhǎng)度為BI_SIZE,數(shù)組的0號(hào)數(shù)為最低8位,往后是更高8位,以此類推。

考慮計(jì)算過(guò)程中的溢出問(wèn)題,BI_SIZE要盡量大,但也不能太大,否則算得會(huì)很慢。

#define

BI_SIZE

128

定義小數(shù)點(diǎn)后的十進(jìn)制位數(shù)PI_NUM,略大于100。

#define

PI_NUM

103

這樣的數(shù)組定義多個(gè),比如計(jì)算函數(shù)內(nèi)部用的工作寄存器如下:

uint8_t

R0[BI_SIZE];

uint8_t

R1[BI_SIZE];

uint8_t

R2[BI_SIZE];

……

用戶使用的寄存器如下:

uint8_t

a0[BI_SIZE];

uint8_t

a1[BI_SIZE];

uint8_t

a2[BI_SIZE];

……

定義大整數(shù)相關(guān)處理函數(shù),包含拷貝、清零、比大小、加、減、乘、移位、除、轉(zhuǎn)十進(jìn)制ascii等函數(shù)。

比如大整數(shù)比大小,相等返回0,a大返回1,b大返回-1。

int

BigInteger_Cmp(uint8_t

*a,uint8_t

*b)

{

uint32_t

i;

for(i

=

BI_SIZE

-

1;i

BI_SIZE;i

--)

{

if(a[i]

!=

b[i])

{

if(a[i]

b[i])

return

1;

else

return

-1;

}

}

return

0;

}

凡是運(yùn)算函數(shù)都要使用輸入地址的方式,如大整數(shù)相加,將a與b相加后的值裝入地址c。

void

BigInteger_Add(uint8_t

*c,uint8_t

*a,uint8_t

*b);

調(diào)用每一個(gè)函數(shù)時(shí),輸出寄存器不能與輸入寄存器沖突。

寫除法函數(shù)可能比較難,請(qǐng)參考二進(jìn)制除法相關(guān)資料。

打印函數(shù)可以用連續(xù)除以10求余獲得。

函數(shù)準(zhǔn)備完成后就可以算圓周率了,先用循環(huán)算出10的PI_NUM次方作為標(biāo)準(zhǔn)系數(shù)EXP[BI_SIZE],計(jì)算每一項(xiàng)時(shí)分子要先乘EXP再除。由于你的級(jí)數(shù)公制性質(zhì),建議乘和除交替進(jìn)行,以免數(shù)字溢出。

每一項(xiàng)不斷累加起來(lái),直到當(dāng)前算得的項(xiàng)為0為止,累加結(jié)果轉(zhuǎn)十進(jìn)制打印出來(lái)。

調(diào)試時(shí)PI_NUM可以先改小,如果數(shù)字正確,就可以改為100多了。

C語(yǔ)言:不調(diào)用庫(kù)函數(shù),用級(jí)數(shù)法求cosx的值

#include?"stdio.h"

#include?"math.h"

#define?PI?3.14156

float?cosx(float?x);

float?fun_cos(float?x,?int?m);

int?main()

{

float?x?=?PI/2;

printf("cos(%f)=%f\n",x,cos(x));//使用系統(tǒng)函數(shù)cos計(jì)算

printf("cosx(%f)=%f\n",x,cosx(x));//使用泰勒公式計(jì)算

return?0;

}

float?fun_cos(float?x,?int?m)

{

float?ret_val;

int?i;

if?(m%2?==?0)

{?ret_val?=?1.0;

}

else

{?ret_val?=?-1.0;

}

for?(i=1;i=2*m;i++)

{?ret_val?=?ret_val?*?x/i;

}

return?ret_val;

}

float?cosx(float?x)

{?float?ret_val?=?1.0;

float?temp_ret;

int?m?=?1;

float?Pi?=?3.1415926;

if?(x??2*Pi?||?x??-2*Pi)

{?x?=?x-((int)(x/(2*Pi)))*(2*Pi);

}

do

{

temp_ret?=fun_cos(x,m++);

ret_val?+=?temp_ret;

}?

while?(temp_ret0.00005?||?temp_ret-0.00005);

return?ret_val;

}

C語(yǔ)言之編求級(jí)數(shù)第n項(xiàng)的函數(shù)

1+3+5+...+(2n-1) = n(1+2n-1)/2 = n^2

1^2+2^2+3^2+n^2 = n(n+1)(2n+1)/6

所以編程實(shí)現(xiàn)的話如下:

#include?"stdio.h"

int?main?()

{

int?n,ret;

printf("please?input?a?integer?n:");

scanf("%d",n);

while(n??0)

{

ret?=?n*(n+1)*(2*n+1)/6;

printf("result?:?%d\n",ret);

printf("please?input?a?integer?n:");

scanf("%d",n);

}

return?0;

}


網(wǎng)頁(yè)題目:c語(yǔ)言用級(jí)數(shù)計(jì)算函數(shù) 計(jì)算級(jí)數(shù)和c++寫法
文章地址:http://weahome.cn/article/ddspoci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部