[例3-17]計(jì)算半徑為1到15的圓的面積,僅打印出超過(guò)50的圓面積。
#include<stdio.h>
main()
{
int r;
float area;
for(r=1;r<=5;r++)
{
area=3.141593*r*r;
if(area<50.0)
continue;
printf("square=%f",area);
}
}
結(jié)果為:
RUN
square=50.265488
square=78.539825
同break一樣,continue語(yǔ)句也僅僅影響該語(yǔ)句本身所處的循環(huán)層,而對(duì)外層循環(huán)沒(méi)有影響。
3.4.5程序應(yīng)用舉例
[例3-18]驗(yàn)證哥德巴赫猜想:任一充分大的偶數(shù),可以用兩個(gè)素?cái)?shù)之和表示,例如:
4=2+2
6=3+3
......
98=19+79
哥德巴赫猜想是世界著名的數(shù)學(xué)難題,至今未能在理論上得到證明,自從計(jì)算機(jī)出現(xiàn)后,人們就開(kāi)始用計(jì)算機(jī)去嘗試解各種各樣的數(shù)學(xué)難題,包括費(fèi)馬大定理、四色問(wèn)題、哥德巴赫猜想等,雖然計(jì)算機(jī)無(wú)法從理論上嚴(yán)密地證明它們,而只能在很有限的范圍內(nèi)對(duì)其進(jìn)行檢驗(yàn),但也不失其意義。費(fèi)馬大定理已于1994年得到證明,而哥德巴赫猜想這枚數(shù)學(xué)王冠上的寶石,至今無(wú)人能及。
分析:我們先不考慮怎樣判斷一個(gè)數(shù)是否為素?cái)?shù),而從整體上對(duì)這個(gè)問(wèn)題進(jìn)行考慮,可以這樣做:讀入一個(gè)偶數(shù)n,將它分成p和q,使n=p+q。怎樣分呢?可以令p從2開(kāi)始,每次加1,而令q=n-p,如果p、q均為素?cái)?shù),則正為所求,否則令p=p+q再試。
其基本算法如下:
1)讀入大于3的偶數(shù)n。
2)P=1
3)do{
4)p=p+1;q=n-p;
5)p是素?cái)?shù)嗎?
6)q是素?cái)?shù)嗎?
7)}whilep、q有一個(gè)不是素?cái)?shù)。
8)輸出n=p+q。
為了判明p、q是否是素?cái)?shù),我們?cè)O(shè)置兩個(gè)標(biāo)志量flag p和flag q,初始值為0,若p是素?cái)?shù),令flag p=1,若q是素?cái)?shù),令flag q=1,于是第7步變成:
7)}while(flag p*flag q==0);
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |