C++中的循環,也沒有改變,依舊是while循環、 do-while循環以及for循環三種,包括配合使用很多的break和continue使用方法上都沒有什麼差別,我們依舊以題來學習鞏固本部分的文法.
來看訓練場中1143題,判斷素數的題,明白質數的概念後,很明顯對於任何一個數N,都要從2開始到N-1之間依序嘗試,判斷是否能被N整除,來找出是否有能被N除盡的因數,如果沒有則為素數了,反之則不是,那麼很明顯是一道循環遍歷的題,C++程式碼如下:
#include<iostream>usingnamespacestd;intmain(){intn,i;cin>>n;for(i=2;i<n;i++){if(n%i==0)break;}if(i>= n)cout<<1<<endl;elsecout<<0<<endl;return0;}
測試運行結果如下:
老規矩,親自上機敲代碼本地測試沒問題,提交通過後再往後進行。
下面,再看一道C++中循環相關的題,由於在ACM競賽中較為常見,也給大家列出來,題目為訓練場1085題,求A+B的和的簡單問題,但為多組測試數據,循環不停的接受,C++的寫法如下:
#include<iostream>usingnamespacestd;intmain(){inta,b;while(cin>>a>>b){cout<<a+b<<endl;}return0;}
運行效果如下:
大家注意while循環裡條件的寫法,是一條cin語句,為什麼可以這麼寫呢?與C語寫法while(scanf(%d%d,&a,&b)==2)道理如出一轍,都是判斷回傳值,即cin的回傳值,前面跟大家講到過cin回傳的是一個istream的流對象,如果遇到問題接收失敗,則傳回false ,進而結束循環。
請大家務必親自上機測試,並用C++完成訓練場1085~1092題。