第一篇:循環(huán)知識(shí)小結(jié)
循環(huán)知識(shí)小結(jié)
一、有關(guān)循環(huán)的語(yǔ)法
1.while語(yǔ)句 2.do~while語(yǔ)句 3.for語(yǔ)句 4.break語(yǔ)句 5.continue語(yǔ)句
? 循環(huán)方式
? while語(yǔ)句和do~while語(yǔ)句多采用標(biāo)記式循環(huán)
? 用于循環(huán)次數(shù)不定的情況
? for語(yǔ)句更方便對(duì)于循環(huán)次數(shù)確定的情況
?
循環(huán)結(jié)構(gòu)
? for語(yǔ)句和while語(yǔ)句先判斷循環(huán)控制條件,后執(zhí)行循環(huán)體
? 可能一次也不執(zhí)行循環(huán)體
? do~while語(yǔ)句是先執(zhí)行循環(huán)體,后進(jìn)行循環(huán)控制條件的判斷
? do~while語(yǔ)句至少執(zhí)行一次循環(huán)體
? do~while語(yǔ)句更適合于第一次循環(huán)肯定執(zhí)行的場(chǎng)合
? 實(shí)現(xiàn)功能
? do~while和while語(yǔ)句只有一個(gè)表達(dá)式,用于控制循環(huán)是否進(jìn)行 ? for語(yǔ)句有三個(gè)表達(dá)式
? 可以控制循環(huán)是否進(jìn)行,并能為循環(huán)變量賦初值及不斷修改循環(huán)變量的值 ? for語(yǔ)句比while和do~while語(yǔ)句功能更強(qiáng),更靈活
? 語(yǔ)句形式
? 初始值
? while、do~while循環(huán)時(shí),循環(huán)變量的初始值操作應(yīng)放在while和do~while
語(yǔ)句之前完成
? for語(yǔ)句通常在表達(dá)式1中實(shí)現(xiàn)循環(huán)控制變量的初始化
? while和for表達(dá)式的括號(hào)后面沒(méi)有“;” ? do~while表達(dá)式的括號(hào)后面有“;”
? 循環(huán)語(yǔ)句的選用原則
? 循環(huán)次數(shù)是否確定
? 循環(huán)次數(shù)已知,一般用for語(yǔ)句
? 循環(huán)次數(shù)由循環(huán)體的執(zhí)行情況來(lái)確定,一般采用while語(yǔ)句或do~while語(yǔ)句
? 循環(huán)體是否一定執(zhí)行
? 循環(huán)體至少要執(zhí)行一次時(shí),采用do~while語(yǔ)句
? 循環(huán)體可能一次也不執(zhí)行,則選用while語(yǔ)句或for語(yǔ)句
二、循環(huán)語(yǔ)句的比較
三、關(guān)于嵌套循環(huán)
1.在嵌套的各層循環(huán)中,應(yīng)使用復(fù)合語(yǔ)句保證邏輯上的正確性 2.嵌套循環(huán)的內(nèi)層和外層的循環(huán)控制變量不應(yīng)同名,以免造成混亂 3.嵌套循環(huán)最好采用右縮進(jìn)格式書(shū)寫(xiě),以保證層次的清晰性
4.循環(huán)嵌套不能交叉,即在一個(gè)循環(huán)體內(nèi)必須完整地包含另一個(gè)循環(huán)
5.在多層循環(huán)中,應(yīng)將最忙(循環(huán)次數(shù)最多)的循環(huán)放在最內(nèi)層,以減少CPU切入循環(huán)的次數(shù)
1、國(guó)王的許諾。相傳國(guó)際象棋是古印度舍罕王的宰相達(dá)依爾發(fā)明的。舍罕王十分喜歡象棋,決定讓
四、有關(guān)循環(huán)應(yīng)用的討論
宰相自己選擇何種賞賜。這位聰明的宰相指著8×8共64格的象棋盤(pán)說(shuō):陛下,請(qǐng)您賞給我一些下麥子吧,就在棋盤(pán)的第1格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完64個(gè)格子,我就感恩不盡了。舍罕王讓人扛來(lái)一袋麥子,他要兌現(xiàn)他的許諾。請(qǐng)問(wèn):國(guó)王他能兌現(xiàn)他的許諾嗎?請(qǐng)編程計(jì)算舍罕王共要多少麥子賞賜他的宰相,這些麥子合多少立方米(已知1立方米麥子約為1.42e8粒)?
問(wèn)題分析:這是一個(gè)典型的循環(huán)次數(shù)已知的等比數(shù)列求和問(wèn)題。第1格放1粒,第2格放2粒,第3格放4=22?!趇格放2i-1粒。所以,總粒數(shù)為sum=1+2+22+23+……+263。對(duì)于這樣的問(wèn)題,我們采取的策略是每次加一個(gè)累加項(xiàng),用循環(huán)語(yǔ)句重復(fù)執(zhí)行64次累加運(yùn)算,即可求出累加和sum。在累加求和問(wèn)題中,尋找累加項(xiàng)的構(gòu)成規(guī)律是問(wèn)題求解的關(guān)鍵。一般地,尋找累加項(xiàng)構(gòu)成規(guī)律有兩種方法:一種是尋找統(tǒng)一的累加項(xiàng)表示規(guī)律,即用一個(gè)通式來(lái)表示累加項(xiàng);另一種是尋找前后項(xiàng)之間的統(tǒng)一的變化規(guī)律,即利用前項(xiàng)得到后項(xiàng)的表示。
該題用第一種方法,可得累加項(xiàng)的通式為term=2n-1,即term=pow(2,n-1),n從1變化到64,即從第一項(xiàng)開(kāi)始計(jì)算累加和,所以有sum=sum+term,sum的初始值為0。因此得源代碼如下:
# include
# include
以上程序運(yùn)行的結(jié)果為:
這種數(shù)值如此龐大,是舍罕王絕對(duì)沒(méi)有預(yù)料到的,它相當(dāng)于全世界若干世紀(jì)的全部小麥,看來(lái)舍罕王是無(wú)法兌現(xiàn)自己的諾言了!
2、馬克思手稿中的數(shù)學(xué)問(wèn)題。馬克思手稿中有一道趣味數(shù)學(xué)題:有30個(gè)人,其中有男人、女人和小孩,在一家飯館里吃飯共花了30先令,每個(gè)男從各花3先令,每個(gè)女人各花2先令,每個(gè)小孩各花1先令,問(wèn)男人、女人和小孩各有幾個(gè)人?
問(wèn)題分析:設(shè)男人、女人和小孩各x、y、z人,按題目要求可得到下面的方程: x+y+z=30 3x+2y+z=50 兩個(gè)方程有三個(gè)未知數(shù),因此這是一個(gè)不定方程,有多組解,用代數(shù)方法很難求解,一般采用“窮舉法”求解該類問(wèn)題。所以“窮舉法”(也稱“枚舉法”)就是將所有可能的方案都逐一測(cè)試,從中找出符合指定要求的答案。如果由人工來(lái)進(jìn)行這樣的求解過(guò)程,工作量不可想象,而由計(jì)算機(jī)來(lái)完成卻十分簡(jiǎn)單。窮舉法是計(jì)算機(jī)程序設(shè)計(jì)中最簡(jiǎn)單、最常用的一種方法,它充分利用了計(jì)算機(jī)處理速度高的特性。使用窮舉
法的關(guān)鍵是要確定正確的窮舉范圍,過(guò)分?jǐn)U大會(huì)導(dǎo)致程序運(yùn)行效率的降低,過(guò)分縮小會(huì)遺漏正確的結(jié)果而導(dǎo)致錯(cuò)誤。
方法一 采用三重循環(huán)窮舉x、y、z的全部可能的組合。源代碼如下:
# include
方法2 改進(jìn)算法。
# include
3、編程計(jì)算一元二次方程ax2+bx+c=0的根,a,b,c由鍵盤(pán)輸入,其中a≠0。程序設(shè)計(jì)時(shí),根據(jù)一元二次方程求根公式把所有的可能考慮進(jìn)來(lái),設(shè)計(jì)算法如下: # include
{ printf(“不是一元二次方程n”);
exit(0);
//終止整個(gè)程序的執(zhí)行,強(qiáng)制返回操作系統(tǒng)
} disc=b*b-4*a*c;if(fabs(disc)<=EPS)
//實(shí)數(shù)disc與0相比較
printf(“該方程有兩個(gè)相等的實(shí)根:x1=x2=%.2fn”,-b/(2*a));else { p=-b/(2*a);
q=sqrt(fabs(disc))/(2*a);
if(disc>1e-6)
printf(“該方程有兩個(gè)不等的實(shí)根:x1=%.2f,x2=%.2fn”,p+q,p-q);
else
{ printf(“該方程有兩個(gè)共軛復(fù)根:n”);
printf(“x1=%.2f+%.2fin”,p,q);
printf(“x2=%.2f-%.2fin”,p,q);
} } } 程序運(yùn)行的結(jié)果測(cè)試如下: 測(cè)試1:測(cè)試2:測(cè)試3:
測(cè)試4:
補(bǔ)充說(shuō)明: 1)函數(shù)exit()其作用是終止整個(gè)程序的執(zhí)行,強(qiáng)制返回操作系統(tǒng)。和goto,break,continue等控制語(yǔ)句類似,可以用于控制程序的流程。當(dāng)程序執(zhí)行的必需條件不能滿足時(shí),常用exit()函數(shù)終止程序的執(zhí)行。調(diào)用該函數(shù)需要包含頭文件
exit(code);參數(shù)code為int型。當(dāng)code值為0或?yàn)楹瓿A縀XIT_SUCCESS時(shí),表示程序正常退出;當(dāng)code值為非0或?yàn)楹瓿A縀XIT_FAILURE,表示程序出現(xiàn)某種錯(cuò)誤后退出。
2)實(shí)數(shù)不能直接和0比較相等與否
本例中由于a是用戶輸入的原始數(shù)據(jù),不存在計(jì)算誤差,因此a與0的比較也可以用a==0代替。但因disc變量是經(jīng)過(guò)計(jì)算得到的浮點(diǎn)數(shù),而絕大多數(shù)計(jì)算機(jī)中表示的浮點(diǎn)數(shù)都只是它們?cè)跀?shù)學(xué)上表示的數(shù)據(jù)的近似值,因此disc與0的比較不能用disc==0來(lái)代替,必須用fabs(disc)<=EPS表示。
3)有關(guān)實(shí)型數(shù)據(jù)的輸入格式 實(shí)型變量若定義為float類型,則在用scanf()函數(shù)輸入時(shí)應(yīng)用%f格式;若定義為double類型,則應(yīng)用%lf格式輸入。實(shí)際從鍵盤(pán)輸入的數(shù)據(jù)可以是整數(shù)、小數(shù)或指數(shù)形式,存入變量對(duì)應(yīng)的存儲(chǔ)空間均為指數(shù)形式。在C中所有實(shí)型常量的類型默認(rèn)為double類型,若將一個(gè)實(shí)型常量賦值給float型變量時(shí),系統(tǒng)會(huì)出現(xiàn)警告,提醒用戶由于兩種類型的有效數(shù)字位數(shù)不同,容易產(chǎn)生精度損失問(wèn)題,如果所處理的數(shù)據(jù)有效數(shù)字位數(shù)在7位以內(nèi),此警告可忽略。
4、從鍵盤(pán)輸入一個(gè)正整數(shù),編程判斷它是否是素?cái)?shù)。若是素?cái)?shù),輸出“Yes!”,否則輸出“No!”
問(wèn)題分析:所謂“素?cái)?shù)”即質(zhì)數(shù),是只能被1和本身整除的數(shù)。所以判素?cái)?shù)的方法:把m作為被除數(shù),窮舉2~m-1之間的數(shù)作為除數(shù),若其中有一個(gè)能整除,即可確定m不是素?cái)?shù),否則是素?cái)?shù)。事實(shí)上,根本用不著除那么多次,用數(shù)學(xué)的方法可以證明:只需要用2~m之間的整數(shù)去除m,即可得到正確的判定結(jié)果。
方法一 用goto語(yǔ)句實(shí)現(xiàn)的程序如下:
# include
{ printf(“%d不是素?cái)?shù)!n”,m);
goto end;
} } printf(“%d是素?cái)?shù)!n”,m);end: printf(“程序結(jié)束!n”);} 方法二
用break語(yǔ)句實(shí)現(xiàn)的程序如下:
# include
# include
if(m%i==0)
break;if(i>k)
printf(“%d是素?cái)?shù)!n”,m);else
printf(“%d不是素?cái)?shù)!n”,m);} 分析:goto語(yǔ)句可以控制流程跳轉(zhuǎn)到程序中任意某個(gè)指定的語(yǔ)句處去執(zhí)行,而break語(yǔ)句的作用是終止整個(gè)循環(huán)的執(zhí)行,從循環(huán)體內(nèi)中途退出,接著去執(zhí)行循環(huán)語(yǔ)句之后的第一條語(yǔ)句。break語(yǔ)句的使用使循環(huán)的控制更靈活了。使用break語(yǔ)句的副作用是它會(huì)使循環(huán)體本身形成兩個(gè)出口,同goto語(yǔ)句相比,只不過(guò)break語(yǔ)句跳轉(zhuǎn)的距離和方向受到了嚴(yán)格的限制,而不像goto語(yǔ)句那樣可以向任意方向跳轉(zhuǎn)。因此,無(wú)論使用goto語(yǔ)句還是break語(yǔ)句,都不是一種好的選擇,所以應(yīng)盡量少用或不用它們。很多情況下,可以采用標(biāo)志變量并加強(qiáng)循環(huán)測(cè)試的方法是完全可以避免使用break語(yǔ)句的。方法三 通過(guò)設(shè)置標(biāo)志變量并加強(qiáng)循環(huán)測(cè)試的方法實(shí)現(xiàn)程序如下:
# include
if(m%i==0)
flag=0;if(flag)
printf(“%d是素?cái)?shù)!n”,m);else
printf(“%d不是素?cái)?shù)!n”,m);} 結(jié)論:從程序的可讀性方面看,方法三比方法一和方法二都好!
5、從鍵盤(pán)輸入一個(gè)正整數(shù)m,若m不是素?cái)?shù),則打印其所有因子;否則,打印“沒(méi)有因子,是素?cái)?shù)!”
問(wèn)題分析:能被m整除的數(shù)i就是m的因子,因此當(dāng)m%i==0時(shí),不退出循環(huán)而打印當(dāng)時(shí)的i值即可。為了得到m的所有因子,循環(huán)變量i應(yīng)從2一直變化到m-1,即無(wú)論m是否是素?cái)?shù)都要檢驗(yàn)所有的i值。
# include
} printf(“請(qǐng)從鍵盤(pán)輸入一個(gè)正整數(shù):”);scanf(“%d”,&m);for(i=2;i<=m-1;i++)//此處的m-1可否改為m/2或sqrt(m)?
if(m%i==0){ flag=0;
printf(“%dn”,i);} if(flag)printf(“%d是素?cái)?shù),沒(méi)有因子!n”,m);
五、有關(guān)getchar()、getche()和getch()的討論
? getchar()函數(shù)采用緩沖輸入方式,即輸入字符先被放到緩沖隊(duì)列中,直到鍵入回車鍵時(shí)才返回,getcahr()每次從輸入緩沖隊(duì)列中讀取第一個(gè)字符進(jìn)行相應(yīng)的處理。
? getch()函數(shù)在擊鍵之后立即返回,無(wú)需輸入回車鍵,且不向屏幕回顯鍵入的字符。? getche()函數(shù)功能同getch()函數(shù),只是前者要向屏幕回顯鍵入的字符。? getch()和getche()是Turbo C特有的庫(kù)函數(shù),在頭文件conio.h中定義。
例1:從鍵盤(pán)輸入一個(gè)班學(xué)生(人數(shù)不確定)一門(mén)課程的五分制成績(jī),編程要求每輸入一個(gè)五分成績(jī),就顯示其所在的分?jǐn)?shù)段,同時(shí),統(tǒng)計(jì)并打印每種成績(jī)的人數(shù)。
問(wèn)題分析:對(duì)于這類輸入數(shù)據(jù)個(gè)數(shù)不確定的問(wèn)題,常常采用輸入一個(gè)特殊的數(shù)作為程序判斷循環(huán)結(jié)束標(biāo)志的方法。例如,輸入百分制成績(jī)時(shí),用負(fù)數(shù)作為輸入結(jié)束的標(biāo)志,輸入五分制成績(jī)里,則可用一個(gè)特殊的符號(hào)作為輸入結(jié)束的標(biāo)志。
程序如下:
# include
switch(grade)
{ case 'A': case 'a': printf(“90--100n”);
aCount++;
break;case 'B': case 'b': printf(“80--89n”);
bCount++;
break;case 'C': case 'c': printf(“70--79n”);
cCount++;
break;case 'D': case 'd': printf(“60--69n”);
dCount++;
break;case 'E': case 'e': printf(“<60n”);
}
eCount++;
break;
default: printf(“輸入錯(cuò)誤!n請(qǐng)重新輸入:n”);} grade=getchar();} printf(“統(tǒng)計(jì)結(jié)果: A: %d, B: %d, C:%d, D:%d, E:%dn”,aCount,bCount,cCount,dCount,eCount);運(yùn)行結(jié)果如下:
測(cè)試1:
問(wèn)題:只有輸入#并回車才能真正結(jié)束程序,#沒(méi)有直到預(yù)期的目的。測(cè)試2:
問(wèn)題:以回車或空格作為每個(gè)等級(jí)的分隔符,統(tǒng)計(jì)結(jié)果雖然正確,但都會(huì)提示出錯(cuò)信息,解決方法一:在switch語(yǔ)句中增加一個(gè)case分支:
case ' ': case 'n': break;解決方法二:將接收字符的操作改用scanf函數(shù)實(shí)現(xiàn),并在%c格式前增加一個(gè)空格,將前面輸入數(shù)據(jù)輸入時(shí)存于緩沖區(qū)的回車符讀入,避免被后面的字符型變量作為有效字符讀入。scanf(“ %c”,&grade);例2:設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器程序,要求用戶可以連續(xù)做多次算術(shù)運(yùn)算,每次運(yùn)算結(jié)束后,程序都會(huì)給出提示: Do you want to continue(Y /N or y/n)? 如果用戶輸入Y或y時(shí),程序繼續(xù)執(zhí)行其他運(yùn)算,否則退出程序。程序如下:
# include
} char op,reply;do { printf(“請(qǐng)輸入計(jì)算表達(dá)式:”);scanf(“%d %c %d”,&d1,&op,&d2);switch(op){ case '+': printf(“%d%c%d=%dn”,d1,op,d2,d1+d2);break;
case '-': printf(“%d%c%d=%dn”,d1,op,d2,d1-d2);break;
case '*': printf(“%d%c%d=%dn”,d1,op,d2,d1*d2);break;
case '/': if(d2==0)
printf(“除數(shù)不能為0n”);
else
printf(“%d%c%d=%dn”,d1,op,d2,d1/d2);
break;
default: printf(“運(yùn)算符錯(cuò)誤!n”);} printf(“Do you want to continue(Y /N or y/n)? ”);reply=getchar();}while(reply=='Y'||reply=='y');printf(“程序結(jié)束!n”);問(wèn)題:測(cè)試不能得到預(yù)期的結(jié)果,原因在于函數(shù)getchar的行緩沖問(wèn)題導(dǎo)致getchar()把用戶輸入表達(dá)最后的回車符作為其讀入字符。
解決辦法:將語(yǔ)句reply=getchar();改為reply=getch();或reply=getche();或scanf(“ %c”,&reply);都可以。
六、結(jié)構(gòu)化程序設(shè)計(jì)的核心思想
結(jié)構(gòu)化程序設(shè)計(jì)是一種進(jìn)行程序設(shè)計(jì)的原則和方法,按照這種原則和方法設(shè)計(jì)的程序具有結(jié)構(gòu)清晰、容易閱讀、容易修改、容易驗(yàn)證等特點(diǎn)。因此,人們把“結(jié)構(gòu)清晰、容易閱讀、容易修改、容易驗(yàn)證”作為衡量程序質(zhì)量的首要條件。也就是說(shuō),所謂“好”的程序是指“好結(jié)構(gòu)”的程序,一旦效率與“好結(jié)構(gòu)”發(fā)生矛盾時(shí),那么寧可在可容忍的范圍內(nèi)降低效率,也要確保好的結(jié)構(gòu)。
結(jié)構(gòu)化程序設(shè)計(jì)的基本核心思想歸納起來(lái)為以下3點(diǎn):
(1)采用順序、選擇、循環(huán)三種基本結(jié)構(gòu)作為程序設(shè)計(jì)的基本單元。
(2)盡量不要使用多于一個(gè)的goto語(yǔ)句標(biāo)號(hào),同時(shí)只允許在一個(gè)“單入口單出口”的模塊內(nèi)用goto語(yǔ)句向前跳轉(zhuǎn),不允許回跳。
(3)采用“自頂向下、逐步求精”和模塊化方法進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)。
七、循環(huán)的應(yīng)用
(一)遞推算法
1.編程計(jì)算1+2+3+……100的值。
2.編程計(jì)算1×2×3+3×4×5+5×6×7+……+99×100×101的值
[提示:用累加和算法,通項(xiàng)公式為term=i*(i+1)*(i+2)(i=1,3,5,…,99),或者公式為term=(i-1)*i*(i+1)(i=2,4,6,…,100),步長(zhǎng)為2。] 2.編程計(jì)算n!=1×2×3×……×n的值。
3.編程計(jì)算1!+2!+3!+……+10!的值。
[提示:用累加和算法,累加項(xiàng)為term=term*i(i=1,2,3,…,10),term的初始值為1。] 4.編程計(jì)算a+aa+aaa+……+aa…a(n個(gè)a)的值,n和a由鍵盤(pán)輸入。
[提示:用累加和算法,累加項(xiàng)為term=term*10+a(i=1,2,3,…,n),term初始值為0。]
5.編程計(jì)算分?jǐn)?shù)數(shù)列6.編程計(jì)算s7.編程計(jì)算s?1?12221,,235358138,2113,?前20項(xiàng)之和。
111?2?342?11?2?3562???1?2?3??n直到,n由鍵盤(pán)輸入。如n為11時(shí),s=1.83333。
?10?3?????(2?n?1)(2?n)2(2?n?1)(2?n)2。
8.編程計(jì)算xn,其中x和n均由鍵盤(pán)輸入。
9.一球從200米高度自由落下,每次落地后反跳回原高度的一半,再落下。編程求它第10次落地時(shí)共經(jīng)過(guò)的路程及第10次落地后反彈的高度。10.猴子吃桃問(wèn)題。11.求∏的近似值。12.求Fibonacci數(shù)列。
(二)窮舉算法
1.請(qǐng)編程判斷一個(gè)正整數(shù)m(m>=3)是否是素?cái)?shù)。
2.編程實(shí)現(xiàn)從鍵盤(pán)上輸入整數(shù)m和k,輸出大于且緊靠m的k個(gè)素?cái)?shù)。3.請(qǐng)編程找出1至99之間的全部同構(gòu)數(shù)。所謂同構(gòu)數(shù)是這樣的一組數(shù):它出現(xiàn)在它平方數(shù)的右邊。(例如:4是25右邊的數(shù),25是625右邊的數(shù),5和25都是同構(gòu)數(shù)。)5.輸入兩個(gè)正整數(shù),求其最大公約數(shù)和最小公倍數(shù)。
6.輸出所有的水仙花數(shù)。所謂“水仙花數(shù)”是指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。7.從鍵盤(pán)輸入任意一個(gè)整數(shù),編程計(jì)算該整數(shù)各位數(shù)字的累加和(忽略整數(shù)前的正負(fù)號(hào))。
8.韓信點(diǎn)兵。韓信有一隊(duì)兵,他想知道有多少人,便讓士兵排隊(duì)反報(bào)數(shù)。按從1到5報(bào)數(shù),最末一個(gè)士兵報(bào)的數(shù)為1;按從1到6報(bào)數(shù),最末一個(gè)士兵報(bào)的數(shù)為5;按從1到7報(bào)數(shù),最末一個(gè)士兵報(bào)的數(shù)為4;最后再按從1到11報(bào)數(shù),最末一個(gè)士兵報(bào)的數(shù)為10。編程計(jì)算韓信一共有多少士兵?
[提示:設(shè)兵數(shù)為x,則按題意x應(yīng)滿足以下關(guān)系:
x%5==1&&x%6==5&&x%7==4&&x%11==10 用窮舉法對(duì)x從1開(kāi)始試驗(yàn),可得結(jié)果。
] 9.雞兔同籠,共有98個(gè)頭,386只腳,編程求雞、兔各多少只?
[提示:設(shè)雞數(shù)為x,兔數(shù)為y,根據(jù)題意有x+y=98,2x+4y=386,采用窮舉法,x從1變化到97,y取98-x,如果x,y同時(shí)滿足條件2x+4y=386,則打印x,y的值。] 10.百錢(qián)買(mǎi)百雞問(wèn)題。取自《張丘建算經(jīng)》:“雞翁一,值錢(qián)五;雞母一,值錢(qián)三;雞雛三,值錢(qián)一。百錢(qián)買(mǎi)百雞,問(wèn)雞翁、母、雛各幾何?”
[提示:設(shè)公雞、母雞、小雞數(shù)各為x,y,z,依題意有x+y+z=100, 5x+3y+z/3=100。采用窮舉法求解,因100元買(mǎi)公雞最多20只,買(mǎi)母雞最多33只,所以只要x從0變化到20,y從0變化到33,則z=100-x-y,若同時(shí)滿足5x+3y+z/3=100,即得解。]
第二篇:Shell 循環(huán)語(yǔ)句用法小結(jié)
在寫(xiě)shell腳本時(shí),常常會(huì)用到循環(huán)語(yǔ)句。這里簡(jiǎn)單總結(jié)下常用的3種循環(huán)語(yǔ)句,以便以后能快速地參考寫(xiě)出,廢話不說(shuō),開(kāi)始demo:
1、for
主要用于:在以知序列里遍歷元素
[plain] view plaincopy #!/bin/sh
for i in `seq 1 9` do echo $i done注意:for in 可以和 `` 與 $()合用
再給一個(gè)for的用法示例:
[plain] view plaincopy #!/bin/sh
for((i=1; i<=10; i++))
do echo $i done提醒:這個(gè)主要是用了(())
2、while
主要用于:當(dāng)某條件成立時(shí),一直執(zhí)行
[plain] view plaincopy #!/bin/shcnt=9 until [ $cnt-lt 0 ] do echo $cnt cnt=$((cnt-1))done 注意:給變量賦值時(shí),前面不要加$
第三篇:知識(shí)競(jìng)賽小結(jié)
“迎國(guó)慶”知識(shí)競(jìng)賽活動(dòng)小結(jié)
“迎國(guó)慶”員工知識(shí)競(jìng)賽活動(dòng)于9月29日成功舉辦并圓滿結(jié)束?,F(xiàn)將具體情況小結(jié)如下:
一、競(jìng)賽目的明確。
本次競(jìng)賽主要目的是全面宣貫省市公司半年會(huì)議精
神,認(rèn)真落實(shí)“兩情系、一轉(zhuǎn)變”項(xiàng)目推進(jìn),成體系抓好戰(zhàn)略策略落地執(zhí)行,切實(shí)加快轉(zhuǎn)變發(fā)展方式,在公司內(nèi)部掀起一個(gè)“趕、幫、超”的學(xué)習(xí)熱潮。同時(shí)為深入進(jìn)行愛(ài)國(guó)主義教育,激發(fā)廣大員工愛(ài)國(guó)熱情,為慶祝新中國(guó)成立61周年?duì)I造喜慶熱烈、文明和諧的社會(huì)氛圍。
二、競(jìng)賽內(nèi)容豐富。
競(jìng)賽內(nèi)容著眼點(diǎn)是堅(jiān)持理論聯(lián)系實(shí)際的原則,注重實(shí)踐鍛煉,將精神理念與業(yè)務(wù)知識(shí)緊密結(jié)合起來(lái),以賽促學(xué),力求上下同頻共振。競(jìng)賽內(nèi)容主要包括省市公司半年工作會(huì)精神、“兩情系一轉(zhuǎn)變”治企理念、3G業(yè)務(wù)新知識(shí)、公司重大制度及管理辦法、愛(ài)國(guó)主義教育基本知識(shí)。
三、參與人員全面。
競(jìng)賽分兩個(gè)階段,一是全員參與階段,公司統(tǒng)一出題,統(tǒng)一時(shí)間,統(tǒng)一方式,在9月28日9點(diǎn)至18點(diǎn)和29日12點(diǎn)至18點(diǎn),組織在職員工全員在OA系統(tǒng)知識(shí)管理平臺(tái)上進(jìn)行網(wǎng)上答題。二是集中競(jìng)賽階段。于9月29日晚上7點(diǎn)舉行,全市分公司編組共有12支隊(duì)伍參加。由各縣(市)分公司、市分公司各部門(mén)組建代表隊(duì),每隊(duì)3人。其組成為:各縣市分公司各組一隊(duì)由公司領(lǐng)導(dǎo)、部門(mén)主管、基層員工各一名組成;市分公司政企部、公眾部、農(nóng)客部、網(wǎng)絡(luò)部、客戶服務(wù)部等部門(mén)各組一隊(duì),市場(chǎng)部、經(jīng)支中心、號(hào)百中心由市場(chǎng)部牽頭共同組隊(duì),由中層干部、管理員、基層員工各一名組成;管控部門(mén)共同組隊(duì)由綜合辦牽頭,由部門(mén)正副職和管理員各一名組成。
四、組織領(lǐng)導(dǎo)充分。
為確保本次競(jìng)賽活動(dòng)順利進(jìn)行,成立了以市分公司總經(jīng)理伍虎為組長(zhǎng)的競(jìng)賽活動(dòng)領(lǐng)導(dǎo)小組,下設(shè)了競(jìng)賽組織
組、競(jìng)賽試題組、競(jìng)賽監(jiān)督組、競(jìng)賽評(píng)審組和競(jìng)賽宣傳組,并由綜合辦、工會(huì)辦、人力資源部、號(hào)百中心等相關(guān)部門(mén)領(lǐng)導(dǎo)擔(dān)任組長(zhǎng)。競(jìng)賽試題組抓緊編寫(xiě)了競(jìng)賽參考100題,精煉學(xué)習(xí)內(nèi)容,公開(kāi)發(fā)布,明確競(jìng)賽范圍。競(jìng)賽組織組與監(jiān)督、評(píng)審組多次討論細(xì)化競(jìng)賽規(guī)則,確保了競(jìng)賽活動(dòng)公平、公正。
五、現(xiàn)場(chǎng)氣氛良好。
夜晚的西八樓會(huì)議室,張燈結(jié)彩,洋溢著歡樂(lè)祥和的氣氛。晚7時(shí)許,競(jìng)賽開(kāi)始。競(jìng)賽答題方式分為個(gè)人必答題、小組必答題和搶答題。其間,還穿插進(jìn)行了觀眾互動(dòng)搶答題,既緩解比賽的緊張氣氛,又為比賽增添娛樂(lè)性和趣味性。整個(gè)比賽氛圍,緊張而又激烈,各代表隊(duì)都進(jìn)
行充分的準(zhǔn)備,信心十足,各啦啦隊(duì)也精心設(shè)計(jì),橫幅、標(biāo)牌應(yīng)有盡有,口號(hào)也是豐富多樣。
最終市分公司政企隊(duì)榮獲一等獎(jiǎng),市分公司市場(chǎng)隊(duì)、網(wǎng)絡(luò)隊(duì)獲二等獎(jiǎng),市分公司客服隊(duì)、大竹分公司隊(duì)、萬(wàn)源分公司隊(duì)分獲三等獎(jiǎng)。
六、網(wǎng)上答題踴躍
本次知識(shí)競(jìng)賽組織到位,答題踴躍。全市共有819人上網(wǎng)答題,全市在崗在冊(cè)員工上網(wǎng)答題率為93%,上網(wǎng)答題及格以上人員共712人,及格率為90%(剔除因出故未答卷完畢等近30人,如工會(huì)辦李一丁等剛從成都返回上網(wǎng)答題10多分鐘網(wǎng)站關(guān)閉),其中100分的57人,90分以上436人,優(yōu)秀率為70%。
部分出差、休假等人員或其部門(mén)領(lǐng)導(dǎo)等都電話向組委會(huì)人員進(jìn)行請(qǐng)假,部分人員因工作原因沒(méi)能及時(shí)答題或未答題完成都及時(shí)進(jìn)行了通報(bào)或解釋。
七、整體效果顯著
本次知識(shí)競(jìng)賽,各單位和全體員工都非常重視,達(dá)到了知識(shí)競(jìng)賽全面普及和集中效應(yīng)的預(yù)期目的。通過(guò)本次競(jìng)賽,激發(fā)了廣大員工自覺(jué)學(xué)習(xí)的熱情,促進(jìn)了廣大員工對(duì)3G業(yè)務(wù)知識(shí)的了解和掌握,增強(qiáng)了企業(yè)內(nèi)部凝聚力和員工的集體榮譽(yù)感,對(duì)宣貫省市公司半年會(huì)議精神有了更進(jìn)一步的認(rèn)識(shí),對(duì)于其內(nèi)涵有了更加全面的了解和領(lǐng)會(huì),對(duì)重
點(diǎn)工作落實(shí)有了深層次的責(zé)任意識(shí),為下半年工作開(kāi)展與完成起到了一個(gè)動(dòng)員和加油站的積極作用。
第四篇:ansys知識(shí)小結(jié)
(一)ASEL, Type, Item, Comp, VMIN, VMAX, VINC, KSWP
asel是選擇面;type是選擇方式,S是選擇,A是補(bǔ)選,U是不選,ALL是全選,INV是反選,item是選擇的原則,比如,loc就是按坐標(biāo)來(lái)選,area是按面體標(biāo)號(hào)來(lái)選,后面的vmin,vmax,就是根據(jù)選擇原則的最小最大值,vinc就是增量(默認(rèn)為1),kswp有兩個(gè)值0和1,0就是只選擇面,1是選擇面和組成面的線和點(diǎn),舉個(gè)例子,比如,asel,s,area,3,,0,就是選擇編號(hào)為3的面,如asel,s,area,3,9,2,0就是選擇3,5,7,9面,增量為2,3為所選面編號(hào)的最小值,9為所選面編號(hào)的最大值,0為只選擇面,(二)AATT,MAT,REAL,TYPE,ESYS,SECN
MAT代表材料代號(hào),REAL是實(shí)常數(shù),TYPE代表的是單元類型,例如solid45等,EYES代表的是單元坐標(biāo)系號(hào),命令
ET,1,SOLID45
MP,EX,1,155E9
MP,PRXY,1,0.3
MP,DENS,1,7228
AATT,1,1,1,12的意思就是說(shuō)材料是 材料
1、實(shí)常數(shù)號(hào)是1(上面的程序沒(méi)有),單元類型是solid45,單元坐標(biāo)系為局部坐標(biāo)11。
(三)LSEL, Type, Item, Comp, VMIN, VMAX, VINC, KSWP
LSEL是line select,選擇線
S是指選擇
LOC是location,坐標(biāo)
Y是指Y軸坐標(biāo)
1是指Y坐標(biāo)值
LSEL,S,LOC,Y,1是指選擇中點(diǎn)在Y軸坐標(biāo)為1的線
R是指重新選擇,即放棄上一步的選擇
LSEL,R,LOC,X,0.25是指重新選擇中點(diǎn)在X軸坐標(biāo)為0.25的線
第五篇:黨的基本知識(shí)小結(jié)
韓坊明德學(xué)校黨的基本知識(shí)小結(jié)
通過(guò)宣傳黨的基本知識(shí),使全體學(xué)生加強(qiáng)了對(duì)黨的認(rèn)識(shí),中國(guó)共產(chǎn)黨作為中國(guó)的執(zhí)政黨,作為為中華民族努力奮斗不息的黨,在抗日戰(zhàn)爭(zhēng),解放戰(zhàn)爭(zhēng)中作了巨大的貢獻(xiàn),它們的付出與努力使中國(guó)走上了發(fā)展社會(huì)主義社會(huì)的道路,雖然這其中走了許多的彎路,但是中國(guó)共產(chǎn)黨一直以人民的利益為出發(fā)點(diǎn),積極為人民利益服務(wù),認(rèn)識(shí)到中國(guó)共產(chǎn)黨是中國(guó)工人階級(jí)的先鋒隊(duì),是中國(guó)各族人民利益的忠實(shí)代表,是中國(guó)社會(huì)主義事業(yè)的領(lǐng)導(dǎo)核心年滿十八歲的中國(guó)工人、農(nóng)民、軍人、知識(shí)分子和其他革命分子,承認(rèn)黨的綱領(lǐng)和章程,愿意參加黨的一個(gè)組織并在其中積極工作,執(zhí)行黨的決議和按期交納黨費(fèi)的,可以申請(qǐng)加入中國(guó)共產(chǎn)黨。
? 中國(guó)特色社會(huì)主義是新時(shí)期以來(lái)我們黨繼續(xù)推進(jìn)馬克思主義中國(guó)化的偉大歷史性創(chuàng)造。體現(xiàn)在實(shí)踐上,就是開(kāi)辟了中國(guó)特色社會(huì)主義道路;體現(xiàn)在理論上,就是形成了中國(guó)特色社會(huì)主義理論體系;體現(xiàn)在政治上,就是要高舉中國(guó)特色社會(huì)主義偉大旗幟.? 1.中國(guó)特色社會(huì)主義是當(dāng)代中國(guó)發(fā)展進(jìn)步的旗幟
? 中國(guó)特色社會(huì)主義,是改革開(kāi)放歷史新時(shí)期中國(guó)共產(chǎn)黨人的正確選擇和偉大創(chuàng)造,它不斷探索和發(fā)展我國(guó)社會(huì)主義經(jīng)濟(jì)建設(shè)、政治建設(shè)、文化建設(shè)、社會(huì)建設(shè)的有效途徑和方法,不斷探索和回答什么是社會(huì)主義、怎樣建設(shè)社會(huì)主義,建設(shè)什么樣的黨、怎樣建設(shè)黨,實(shí)現(xiàn)什么樣的發(fā)展、怎樣發(fā)展等重大理論和實(shí)際問(wèn)題,不斷開(kāi)創(chuàng)中國(guó)特色社會(huì)主義事業(yè)新局面。? 2.中國(guó)特色社會(huì)主義是全黨全國(guó)各族人民團(tuán)結(jié)奮斗的旗幟
? 在當(dāng)代中國(guó),只有中國(guó)特色社會(huì)主義旗幟而不是別的什么旗幟能夠最大限度地團(tuán)結(jié)和凝聚不同社會(huì)階層、不同利益群體人們的智慧和力量,只有中國(guó)特色社會(huì)主義能夠解決當(dāng)代中國(guó)的前途命運(yùn)問(wèn)題。高舉中國(guó)特色社會(huì)主義旗幟,是歷史的選擇、時(shí)代的選擇、人民的選擇。
? 使全體學(xué)生加強(qiáng)了對(duì)黨的認(rèn)識(shí),中國(guó)共產(chǎn)黨作為中國(guó)的執(zhí)政黨,作為為中華民族努力奮斗不息的黨,在抗日戰(zhàn)爭(zhēng),解放戰(zhàn)爭(zhēng)中作了巨大的貢獻(xiàn),它們的付出與努力使中國(guó)走上了發(fā)展社會(huì)主義社會(huì)的道路,雖然這其中走了許多的彎路,但是中國(guó)共產(chǎn)黨一直以人民的利益為出發(fā)點(diǎn),積極為人民利益服務(wù),韓坊明德學(xué)校
二0一二年五月