第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第1頁
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第2頁
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第3頁
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第4頁
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩85頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.1引例4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句4.3幾種循環(huán)的比較4.4循環(huán)嵌套4.5流程控制語句4.6循環(huán)程序舉例4.1引例【例4.1】編寫程序,輸入全班30個(gè)學(xué)生的數(shù)學(xué)、英語、計(jì)算機(jī)成績,計(jì)算每位學(xué)生的總分和平均分,并輸出。

printf("InputMathscore,Englishscore,Computerscore:\n");

scanf("%d%d%d",&MaScore,&EnScore,&CScore);

sum=MaScore+EnScore+CScore;

aver=sum/3.0;

printf("Thesumis%d\nTheaverageis%.1f\n",sum,aver);

i=1; while(i<=30)

{

i++; }#include<stdio.h> intmain(void) { inti,MaScore,EnScore,CScore,sum; floataver;

i=1; //循環(huán)變量i賦初值為1

while(i<=30) //當(dāng)i<=30時(shí)執(zhí)行花括號(hào)內(nèi)的語句

{

printf("InputMathscore,Englishscore,Computerscore:\n");scanf("%d%d%d",&MaScore,&EnScore,&CScore);sum=MaScore+EnScore+CScore; aver=sum/3.0; printf("Thesumis%d\nTheaverageis%.1f\n",sum,aver);

i++; //循環(huán)變量i的值加1

} return0; }4.1引例

順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是用于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)。按照結(jié)構(gòu)化程序設(shè)計(jì)的觀點(diǎn),任何復(fù)雜問題都可用這三種結(jié)構(gòu)編程實(shí)現(xiàn),它們是各種復(fù)雜程序設(shè)計(jì)的基礎(chǔ)。4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句

C語言提供while、do-while、for三種循環(huán)語句來實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。循環(huán)語句在給定條件成立的情況下,重復(fù)執(zhí)行某個(gè)程序段,這個(gè)被重復(fù)執(zhí)行的程序段稱為循環(huán)體。

4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句

1.while循環(huán)

while循環(huán)屬于當(dāng)型循環(huán),即當(dāng)某個(gè)給定的條件成立時(shí)執(zhí)行循環(huán)體,否則終止循環(huán)體的執(zhí)行。

while語句的一般形式為:

while(表達(dá)式)循環(huán)體

4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句

while循環(huán)的執(zhí)行過程如下:(1)計(jì)算循環(huán)條件表達(dá)式的值;(2)如果循環(huán)條件表達(dá)式的值為“真”(非0),則執(zhí)行循環(huán)體的語句序列,并返回步驟(1);否則,轉(zhuǎn)(3);(3)循環(huán)結(jié)束。

例4.1用while語句實(shí)現(xiàn)了循環(huán)輸出,實(shí)現(xiàn)的語句為:

i=1; while(i<=30)

{

printf("InputMathscore,Englishscore,Computerscore:\n");scanf("%d%d%d",&MaScore,&EnScore,&CScore)sum=MaScore+EnScore+CScore; aver=sum/3.0; printf("Thesumis%d\nTheaverageis%.1f\n",sum,aver); i++;

}4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句

2.do-while循環(huán)do-while循環(huán)屬于直到型循環(huán),先執(zhí)行循環(huán)體,再檢查給定的條件是否成立,若成立,繼續(xù)執(zhí)行循環(huán)體,否則,循環(huán)結(jié)束。do-while循環(huán)的一般形式為:

do

循環(huán)體

while(表達(dá)式);

4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句

do-while的執(zhí)行過程如下:(1)執(zhí)行循環(huán)體中的語句;(2)計(jì)算循環(huán)條件表達(dá)式的值;(3)如果循環(huán)條件表達(dá)式的值為“真”(非0),則轉(zhuǎn)(1),否則,轉(zhuǎn)(4);(4)循環(huán)結(jié)束。用

do-while語句實(shí)現(xiàn)例4.1中的循環(huán)輸出,實(shí)現(xiàn)的語句為:

i=1; do {printf("InputMathscore,Englishscore,Computerscore:\n");scanf("%d%d%d",&MaScore,&EnScore,&CScore)sum=MaScore+EnScore+CScore; aver=sum/3.0; printf("Thesumis%d\nTheaverageis%.1f\n",sum,aver);

i++;

}while(i<=30);while和do---while循環(huán)的比較#include<stdio.h> intmain(void) { inti; i=1;

while(i<=100) { i=i+1; } printf(”%d\n”,i); return0; }#include<stdio.h> intmain(void) { inti; i=1;

do { i=i+1; }while(i<=100);

printf(”%d\n”,i);

return0; }while和do---while循環(huán)的比較#include<stdio.h> intmain(void) { inti; i=101;

while(i<=100) { i=i+1; } printf(”%d\n”,i); return0; }#include<stdio.h> intmain(void) { inti; i=101;

do { i=i+1; }while(i<=100);

printf(”%d\n”,i);

return0; }while和do---while循環(huán)的比較比較兩種循環(huán)的運(yùn)行結(jié)果: 第(1)個(gè)程序運(yùn)行后輸出為:101

第(2)個(gè)程序運(yùn)行后輸出為:102習(xí)題3-4用戶輸入一元二次方程的系數(shù)a、b、c,編程,判斷該方程在實(shí)數(shù)范圍內(nèi)是否有根,并輸出其實(shí)數(shù)根。習(xí)題3-5編寫一個(gè)商場(chǎng)購物打折的程序。計(jì)算方法如下:

x x<1000x*0.9 1000≤x<2000y=x*0.8 2000≤x<4000x*0.7 4000≤x<6000x*0.6 x≥6000

要求:(1)用if語句編寫程序。 (2)用switch語句編寫程序。4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句 i=1; while(i<=100){

i++; } i=1; do{

i++; }while(i<=100);4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句 i=101; while(i<=100){

i++; } i=101; do{

i++; }while(i<=100);4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句for(i=1;i<=100;i++){}

i=1; while(i<=100){

i++; }4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句3.for循環(huán)

for語句的一般形式為for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

語句設(shè)置初始條件,只執(zhí)行一次??梢詾榱銈€(gè)、一個(gè)或多個(gè)變量設(shè)置初值執(zhí)行4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句3.for循環(huán)

for語句的一般形式為for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

語句循環(huán)條件表達(dá)式,用來判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)4.2循環(huán)控制結(jié)構(gòu)與循環(huán)語句3.for循環(huán)

for語句的一般形式為for(表達(dá)式1;表達(dá)式2;表達(dá)式3)

語句作為循環(huán)的調(diào)整器,例如使循環(huán)變量增值,它是在執(zhí)行完循環(huán)體后才進(jìn)行的注意 當(dāng)循環(huán)體只有一條語句時(shí),可以不使用花括號(hào),則for語句的范圍直到for后面第一個(gè)分號(hào)處 for(i=1;i<=30;i++){

printf("%d\n",i);}注意 當(dāng)循環(huán)體只有一條語句時(shí),可以不使用花括號(hào),則for語句的范圍直到for后面第一個(gè)分號(hào)處 for(i=1;i<=30;i++) printf("%d\n",i); printf("%d\n",i);注意 當(dāng)循環(huán)體只有一條語句時(shí),可以不使用花括號(hào),則for語句的范圍直到for后面第一個(gè)分號(hào)處 for(i=1;i<=30;i++);

printf("%d\n",i); printf("%d\n",i);注意 for循環(huán)的三個(gè)表達(dá)式之間的分隔符是分號(hào),有且僅有兩個(gè)分號(hào),既不能多,也不能少。for(s=0,i=1;i<=100;i++) {s=2*i+1; }逗號(hào)表達(dá)式intx=3,y;y=(x+3,x-=5,x+6);注意 for循環(huán)的三個(gè)表達(dá)式均可以省略,但兩個(gè)分號(hào)不可少。i=1;for(;i<=100;i++) { printf("%d\t%d\n",i,i*i);

}4.3幾種循環(huán)的比較【例4.2】編程求累加之和,從鍵盤輸入n,計(jì)算=1+2+3+……+n的和,并輸出和?!締栴}分析】S0=0S1=S0+1S2=S1+2….S99=S98+99S100=S99+100Si=Si-1+iS=S+iints=0,i,n;scanf(“%d”,&n);for(i=1;i<=n;i++){

s=s+i;}4.3幾種循環(huán)的比較【例4.2】編程求累加之和,從鍵盤輸入n,計(jì)算=1+2+3+……+n的和,并輸出和。ints=0,i,n;scanf(“%d”,&n);for(i=1;i<=n;i++){

s=s+i;}ints=0,i=1,n;scanf(“%d”,&n);while(i<=n){

s=s+i; i=i+1;}4.3幾種循環(huán)的比較【例4.2】編程求累加之和,從鍵盤輸入n,計(jì)算=1+2+3+……+n的和,并輸出和。ints=0,i,n;scanf(“%d”,&n);for(i=1;i<=n;i++){

s=s+i;}ints=0,i=1,n;scanf(“%d”,&n);do{

s=s+i; i=i+1;}while(i<=n);思考:1、求1+3+5+…+992、求2+4+6+…+1003、求50+51+…+1004、求ints=0,i,n;scanf(“%d”,&n);for(i=1;i<=n;i++){

s=s+i;}4.3幾種循環(huán)的比較(1)循環(huán)變量初始化:while、do-while在循環(huán)前指定;for循環(huán)可以在表達(dá)式1中指定。 (2)循環(huán)判斷條件:while、do-while在while后面的括號(hào)內(nèi)指定循環(huán)條件;for循環(huán)在表達(dá)式2中指定循環(huán)條件。 (3)循環(huán)變量的改變:為了使循環(huán)能正常結(jié)束,while和do-while應(yīng)在循環(huán)體中包含使循環(huán)趨于結(jié)束的語句;for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中。因此,for語句的功能更強(qiáng),凡用while循環(huán)能完成的,用for循環(huán)都能實(shí)現(xiàn)。 (4)while、for先判循環(huán)條件,后執(zhí)行;do-while先執(zhí)行,后判斷循環(huán)條件。 (5)while、do-while、for循環(huán)均可用break語句跳出循環(huán),用continue提前結(jié)束本次循環(huán)體的執(zhí)行,而進(jìn)入下一次循環(huán)【例4.3】編程求累乘之積,從鍵盤輸入n,計(jì)算n!,并輸出?!締栴}分析】這是一個(gè)累乘問題,需要先后將n個(gè)數(shù)相乘,如果用ti表示前i項(xiàng)之積,那么有如下公式:t0=1t1=t0*1t2=t1*2 =>ti=ti-1*i=> t=t*i…tn=tn-1*n

inti,n;longintt=1;

printf(“請(qǐng)輸入n的值:\n”);scanf(“%d”,&n);

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

t=t*i;}【例4.4】編程,用“歐幾里德”算法求兩個(gè)自然數(shù)m和n的最大公約數(shù)?!締栴}分析】“歐幾里德”算法又稱“輾轉(zhuǎn)相除法”,是求兩個(gè)自然數(shù)的最大公約數(shù)的經(jīng)典算法。它先將m除以n求余數(shù)r,并判斷余數(shù)r是否為0,如果余數(shù)r為0,則n就是最大公約數(shù),否則,就輾轉(zhuǎn)賦值(m=n,n=r),再重復(fù)相除求余并判斷,直到余數(shù)r為0為止。例如:mnr(m%n)判斷條件(m%n!=0)第1次2496 成立第2次963 成立第3次630 不成立(終止)則3為所求得的最大公約數(shù)。

do { r=m%n; m=n;

n=r;

}while(r!=0);

printf("最大公約數(shù)為:%d\n",?);

do { r=m%n; m=n;

n=r;

}while(r!=0);

printf("最大公約數(shù)為:%d\n",m);

while(n!=0) { r=m%n; m=n;

n=r;

}

printf("最大公約數(shù)為:%d\n",m);

while(n!=0) { r=m%n; m=n;

n=r;

}

printf("最大公約數(shù)為:%d\n",m);

while(1)

{ r=m%n;

if(r==0)break; m=n; n=r;

} printf("最大公約數(shù)為:%d\n",n);

while(1)

{ r=m%n;

if(r==0)break; m=n; n=r;

} printf("最大公約數(shù)為:%d\n",n);

4.4循環(huán)的嵌套一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)3種循環(huán)(while循環(huán)、do…while循環(huán)和for循環(huán))可以互相嵌套【例4.5】編程,根據(jù)輸入的邊長n(即字符*的個(gè)數(shù)),輸出下列字符圖形。如n=5時(shí): ***** ***** ***** ***** ***** for(i=1;i<=n;i++)

{ for(j=1;j<=n;j++)

printf("*"); printf(“\n”);

}

例:

輸出以下4*5的矩陣。12345246810369121548121620for(i=1;i<=4;i++){ for(j=1;j<=5;j++)printf(“*"); printf("\n"); }

for(i=1;i<=4;i++){ for(j=1;j<=5;j++)printf(“%d“,i*j); printf("\n"); }

for(i=1;i<=4;i++){ for(j=1;j<=5;j++)printf(“%d“,i*j); printf("\n"); }

for(i=1;i<=4;i++){ for(j=1;j<=5;j++)printf(“%d\t“,i*j); printf("\n"); }

for(i=1;i<=4;i++){ for(j=1;j<=5;j++)printf(“*"); printf("\n");

}

for(i=1;i<=4;i++){ for(j=1;j<=i;j++)printf(“*"); printf("\n");

}

【例4.6】編程,用窮舉法解決百錢買百雞問題:一百個(gè)銅錢買了一百只雞,其中公雞一只5錢、母雞一只3錢,小雞一錢3只,問一百只雞中公雞、母雞、小雞各多少?【問題分析】這是一個(gè)古典數(shù)學(xué)問題,設(shè)一百只雞中公雞、母雞、小雞分別為x,y,z,則可以得到:

5x+3y+z/3=100x+y+z=100

【例4.6】編程,用窮舉法解決百錢買百雞問題:一百個(gè)銅錢買了一百只雞,其中公雞一只5錢、母雞一只3錢,小雞一錢3只,問一百只雞中公雞、母雞、小雞各多少?【問題分析】這里x,y,z為正整數(shù),且z是3的倍數(shù);由于雞和錢的總數(shù)都是100,可以確定x,y,z的取值范圍:

(1)x的取值范圍為1~20(一百錢最多買20只公雞)

(2)y的取值范圍為1~33(一百錢最多買33只母雞)

(3)z的取值范圍為3~99,步長為3(小雞一買就是3只,且小雞的數(shù)量不能超過總數(shù)100)對(duì)于這個(gè)問題我們可以用窮舉的方法,遍歷x,y,z的所有可能組合,只要滿足“百錢,百雞”的條件,即可得到問題的解。for(x=1;x<=20;x++){

for(y=1;y<=33;y++)

{

for(z=3;z<=99;z+=3)

{

if((5*x+3*y+z/3==100)

&&(x+y+z==100))printf("公雞只數(shù):%d,母雞只數(shù):%d,小雞只數(shù):%d\n",x,y,z);

}

}}

for(x=1;x<=20;x++){

for(y=1;y<=33;y++)

{

z=100-x-y;

if((5*x+3*y+z/3==100)

&&(z%3==0))printf("公雞只數(shù):%d,母雞只數(shù):%d,小雞只數(shù):%d\n",x,y,z);

}}

4.5流程控制語句

4.5.1用break語句提前終止循環(huán)4.5.2用continue語句提前結(jié)束本次循環(huán)用break語句提前終止循環(huán)break語句可以用來從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句用break語句提前終止循環(huán)【例4.7】某大學(xué)生生病,急需手術(shù)費(fèi)8萬元,現(xiàn)面向全院2000個(gè)學(xué)生募捐,當(dāng)總數(shù)達(dá)到8萬元時(shí)就結(jié)束,統(tǒng)計(jì)此時(shí)捐款的人數(shù),以及平均每人捐款的數(shù)目。

【問題分析】捐款過程可以用循環(huán)來處理,但循環(huán)的實(shí)際次數(shù)事先不能確定,但最多循環(huán)2000次,在循環(huán)中累計(jì)捐款總數(shù),并用if語句檢查是否達(dá)到8萬元,如果達(dá)到,就用break終止循環(huán),不再累加,并計(jì)算人均捐款數(shù)。for(i=1,total=0;i<=2000;i++){ printf("pleaseenteramount:");scanf("%f",&amount);total=total+amount;if(total>=80000)break;

}

if(i>2000) aver=total/2000;elseaver=total/i;printf("num=%d\naver=

%10.2f\n",i,aver);

用continue語句提前結(jié)束本次循環(huán)有時(shí)并不希望終止整個(gè)循環(huán)的操作,而只希望提前結(jié)束本次循環(huán),而接著執(zhí)行下次循環(huán)。這時(shí)可以用continue語句用continue語句提前結(jié)束本次循環(huán)【例4.8】輸出1-100之間不能被3整除的數(shù)?!締栴}分析】此題需要對(duì)1-100之間的每一個(gè)整數(shù)檢查,如果不能被3整除,就將此數(shù)輸出,提前進(jìn)入下一個(gè)的檢查。如果能被3整除,就不輸出此數(shù)。無論是否輸出此數(shù),都要接著檢查下一個(gè)數(shù)(直到100為止)。 for(n=1;n<=100;n++){ if(n%3==0) {

continue; } printf("%4d",n);

}

for(n=1;n<=100;n++){ if(n%3==0) {

break; } printf("%4d",n);

}

break語句和continue語句的區(qū)別continue語句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行break語句結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立4.6循環(huán)程序舉例【例4.9】編程,從鍵盤輸入n,計(jì)算1!+2!+3!+……+n!的值,并輸出?!締栴}分析】此題可結(jié)合例4.2(累加求和)和例4.3(累乘求積)的程序,用嵌套循環(huán)來實(shí)現(xiàn)。其中,外層循環(huán)控制變量i的值從1變化到n,以計(jì)算從1到n的各個(gè)階乘值的累加求和,而內(nèi)層循環(huán)控制變量j的值從1變化到i,以計(jì)算從1到i的累乘結(jié)果即階乘i!。 longs=0,t;

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

{

t=1; for(j=1;j<=i;j++) { t=t*j;

}

s=s+t;

} longs=0,t=1; for(i=1;i<=n;i++) {

t=t*i;

s=s+t; }【程序分析】在這段程序中,我們根據(jù)累加和的前項(xiàng)和后項(xiàng)的關(guān)系,利用前項(xiàng)來計(jì)算后項(xiàng),即將累加項(xiàng)表示為“t=t*i;”,因?yàn)閠只在循環(huán)之前初始化過,在第i次循環(huán)中,賦值號(hào)右側(cè)的t中保留的是上一次累乘的結(jié)果,即(i-1)!,再用(i-1)!*i得到的就是i!了。程序只用了單重循環(huán),大大減少了循環(huán)的次數(shù),提高了效率。循環(huán)體語句“s=s+t;”中s是累加和,t是累加項(xiàng),就是每次要累加的項(xiàng)。編寫累加求和的關(guān)鍵在于尋找累加項(xiàng)的構(gòu)成規(guī)律。(1)當(dāng)累加的項(xiàng)較為復(fù)雜或者前后項(xiàng)之間無關(guān)時(shí),需要單獨(dú)計(jì)算每個(gè)累加項(xiàng)。(2)而當(dāng)累加項(xiàng)的前項(xiàng)與后項(xiàng)之間有關(guān)時(shí),我們可以根據(jù)累加項(xiàng)的后項(xiàng)與前項(xiàng)之間的關(guān)系,通過前項(xiàng)來計(jì)算后項(xiàng)。如例4.9改進(jìn)的程序代碼就利用了累加項(xiàng)的后項(xiàng)和前項(xiàng)的關(guān)系。若ti表示第i項(xiàng),ti-1表示第i-1項(xiàng),后項(xiàng)與前項(xiàng)存在如下比例關(guān)系:【例4.10】編程,求【問題分析】累加項(xiàng)為,可用數(shù)學(xué)庫函數(shù)pow(x,i)來求xi,再除以i就可直接得到累加項(xiàng)的值。 s=0; for(i=1;i<=n;i++) {

t=pow(x,i)/i; s=s+t; } doubles=1,t=1;

i=1; while(fabs(t)>=1e-6)

{

t=t*(-x/i);

s=s+t;

i++; }

intf1=1,f2=1,f,i; printf("%12d%12d",f1,f2); for(i=3;i<=20;i++) { f=f1+f2; printf("%12d",f); if(i%4==0) printf("\n"); f1=f2; f2=f; } 可以改進(jìn): intf1=1,f2=1,i; for(i=1;i<=10;i++) { printf("%12d%12d",f1,f2); if(i%2==0)

printf("\n"); f1=f1+f2;

f2=f2+f1; }

【例4.13】編程,輸入一個(gè)大于3的整數(shù)n,判定它是否為素?cái)?shù)(prime,又稱質(zhì)數(shù))【問題分析】素?cái)?shù)除了1和本身之外,不能被任何數(shù)整除。要判斷n是否為素?cái)?shù),可采用的算法:使n依次除以i,i=2,3,……,(n-1),用循環(huán)實(shí)現(xiàn),在這個(gè)循環(huán)中,如果n能被當(dāng)前的i整除,則n不是素?cái)?shù),不需要再判斷n是否能被i+1整除了,立即結(jié)束循環(huán),此時(shí)i<n;如果n不能被當(dāng)前的i整除,則將i自增1,判斷n是否能被下一個(gè)i整除。當(dāng)i的值超過了n-1,表示在[2,n-1]范圍內(nèi)沒有找到一個(gè)數(shù)能整除n,則n為素?cái)?shù)。 for(i=2;i<n;i++) { if(n%i==0) break; } if(i<n) printf("%d不是素?cái)?shù)\n",n); else printf("%d是素?cái)?shù)\n",n);【程序改進(jìn)】在判斷n是否能被i整除時(shí),不必將i的范圍設(shè)為[2,n-1],只需判斷[2,]范圍內(nèi)的整數(shù)i是否能整除n即可。例如判斷23是否為素?cái)?shù),只要判斷23是否能被2,3,4整除,若2,3,4都不能整除23,那么23一定是一個(gè)素?cái)?shù)。這樣就大大減少了循環(huán)的次數(shù),提高了執(zhí)行效率。 for(i=2;i<=sqrt(n);i++) { if(n%i==0) break; } if(i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論