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

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

c語(yǔ)言因式分解的函數(shù) c++因式分解

C語(yǔ)言 因式分解

#includestdio.h

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、迪慶州ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的迪慶州網(wǎng)站制作公司

#includestdlib.h

#includestring.h

unsigned?int?m=2;

unsigned?int?cnt=1;

void?Factor(int?n,?char?*msg,?char?printYes);

int?main()

{

char?s[100]={0};

char?flag='y';

printf("------求整數(shù)的因式分解------\n請(qǐng)輸入正整數(shù)m(1):");

scanf("%u",?m);

printf("打印詳細(xì)分解情況嗎?[y|n,回車(chē)打印]");

scanf("%*c%c",flag);

if(m1)

{

printf("error?input!\n");

exit(-1);

}

if(flag!='n')

printf("%d?=??%d?\n",?m,m);

Factor(m,?s,flag);

if(cnt==1)

printf("\n%d是素?cái)?shù)\n",m);

printf("\n------");

printf("一共有%d種",?cnt);

printf("------\n");

return?0;

}

void?Factor(int?n,?char?*msg,char?printYes)

{

char?s2[100]={0};//保存當(dāng)前分解的部分結(jié)果

if(n==1)

return?;

for(int?i=2;in;i++)

{

if?(n%i==0)

{

if(n==m)

sprintf(msg,?"%d?=?",?m);

sprintf(s2,"%s?%d?*?",msg,?i);//因式分解部分結(jié)果保存在字符串s2中

if(printYes!='n')

printf("%s?%d\n",s2,n/i);//打印結(jié)果(包括最后一個(gè)因子)

Factor(n/i,s2,printYes);

cnt++;

}

}

}

c++/c語(yǔ)言因式分解

【解題思路】

對(duì)一個(gè)數(shù)進(jìn)行因式分解,可以采用遞歸的辦法,先找出這個(gè)數(shù)最小的因式,然后再把這個(gè)數(shù)除以因式,繼續(xù)找,直到除到這個(gè)數(shù)成為質(zhì)數(shù)為止。比如要對(duì)60進(jìn)行因式分解,可以先找到60的最小因式2;然后再把60除以2得到30,接著找30的最小因式得到2;再把30除以2得到15,接著找15的最小因式3;然后再把15除以3得到5;然后5是質(zhì)數(shù),無(wú)法再分解,最終就得到60的因式共有4個(gè),分別是2,2,3,5。而判斷一個(gè)數(shù)b是不是另一個(gè)數(shù)a的因式必須符合兩個(gè)標(biāo)準(zhǔn),一是a必須能被b整除;二是b必須是質(zhì)數(shù)。根據(jù)以上思路,代碼如下:(為了簡(jiǎn)化程序,這里把判斷是否質(zhì)數(shù)和分解因式都分別做成一個(gè)獨(dú)立的函數(shù))

【程序代碼】

#include?iostream?????????????//控制臺(tái)操作頭文件

#include?math.h???????????????//數(shù)學(xué)函數(shù)頭文件?

//---------------?

bool?SS(int?a)??????????????????//質(zhì)數(shù)判斷函數(shù)(質(zhì)數(shù)返回1,否則0)

{if(a2)?return?false;??????????//小于2的數(shù)都不是質(zhì)數(shù),返回0

if(a==2)?return?true;??????????//2是特殊的質(zhì)數(shù)?

int?i,n=(int)sqrt(a);??????????//n是除數(shù),開(kāi)方可以減少檢測(cè)個(gè)數(shù)?

for(i=2;i=n;i++)??????????????//逐個(gè)檢測(cè)能不能被整除?

if(a%i==0)?return?false;???//如果能被整除說(shuō)明不是質(zhì)數(shù),?返回0;??return?true;}?????????????????//檢測(cè)完了還沒(méi)可以被整除的數(shù),返回1

//---------------

void?Ys(int?s[],int?a)???????????//因式分解的遞歸函數(shù)

/*s是存放各個(gè)因式的數(shù)組,其中s[0]為因式個(gè)數(shù),a是要分解因素的數(shù)字*/

{int?i,n;???????????????????????//循環(huán)變量和因式個(gè)數(shù)

n=++s[0];??????????????????????//每遞歸調(diào)用一次因式個(gè)數(shù)增加1

if(SS(a))?{s[n]=a;?return?;}???//如果a是質(zhì)數(shù),沒(méi)有因式,函數(shù)結(jié)束

for(i=2;ia;i++)???????????????//由小到大找出a的第一個(gè)因式

if(SS(i)a%i==0)?break;???//如果i是質(zhì)數(shù)并且a可以被i整除

s[n]=i;????????????????????????//保存這個(gè)因式

Ys(s,a/i);}????????????????????//遞歸調(diào)用函數(shù)繼續(xù)分解下個(gè)因式

//---------------?

int?main()??????????????????????????????//主函數(shù)

{int?a,i;???????????????????????????????//整型變量?

int?S[100];????????????????????????????//用于存放因式的數(shù)組

for(;;)????????????????????????????????//弄一個(gè)無(wú)窮循環(huán)?

{printf("請(qǐng)輸入一個(gè)正整數(shù)(-1結(jié)束):");?//顯示提示信息

scanf("%d",a);????????????????????//從鍵盤(pán)輸入一個(gè)整數(shù)

if(a==-1)?break;???????????????????//如果輸入-1退出循環(huán)

if(a0)?continue;??????????????????//如果輸入不是正數(shù)重新輸入

S[0]=0;????????????????????????????//因式個(gè)數(shù)清零

Ys(S,a);???????????????????????????//調(diào)用函數(shù)分解因式

printf("%d共有%d個(gè)因式,分別是:",a,S[0]);//顯示因式個(gè)數(shù)

for(i=1;i=S[0];i++)?printf("%d?",S[i]);//顯示各個(gè)因式

printf("\n\n");}???????????????????//顯示完所有因式換行

printf("\n");??????????????????????????//結(jié)束程序前再空一行

system("PAUSE");???????????????????????//屏幕暫停查看顯示結(jié)果

return?0;}?????????????????????????????//結(jié)束程序

【運(yùn)行結(jié)果】

以上程序在DEV?C++上運(yùn)行通過(guò)。

截圖如下:

c語(yǔ)言——一元二次函數(shù)因式分解

#include#includevoidm(floata,floatb,floatc){doublex1,x2;x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);printf("方程的根是%.2lf和%.2lf",x1,x2);}voidn(floata,floatb,floatc){doublex;x=(-b)/(2*a);printf("方程的根為%.2lf",x);}voidf(floata,floatb,floatc){printf("方程無(wú)實(shí)數(shù)根\n");}main(){floata,b,c;printf("請(qǐng)輸入a,b,c的值\n");scanf("%f%f%f",a,b,c);if(b*b-4*a*c0)m(a,b,c);if(b*b-4*a*c==0)n(a,b,c);if(b*b-4*a*c0)f(a,b,c);}


文章題目:c語(yǔ)言因式分解的函數(shù) c++因式分解
瀏覽路徑:http://weahome.cn/article/doescpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部