歡迎來到我的博客http://unity.gopedu.com/home.php?mod=space&uid=3352&do=blog&view=me&from=space
上次的問題
用π/4=1-1/3+1/5-1/7+…的公式求π的近似值,直到最後一項的
絕對值小於10-6爲止。(絕對值:Mathf.Abs())
這個問題的解題思路就是,先將1-1/3+1/5-1/7...的規律找出來,該式子可以寫成1/1+(-1/3)+1/5+(-1/7)...,這樣就是求和公式了,接下來是關鍵,可以將分子看成一個變量a,將分母看成一個變量b,這樣進行求和運算,b的增量可以寫成b=b+2,a的符號變化可寫成a=-a,這樣就解出來了
float sum=0,a=1,b=1;
while(Mathf.Abs(a/b)>=1e-6){
sum=sum+a/b;
b=b+2;
a=-a;
} print (sum*4);
continue與break的區別
continue是退出當前循環操作繼續從循環開始時判斷進行下一次操作,而break是直接退出循環,下面舉個例子
使用continue計算1+3+5+...99
這道題的目的是清楚continue的用法,continue是退出當前循環操作繼續從循環開始時判斷進行下一次操作,所以本題就是循環1加到100,然後利用continue剔除偶數項,這樣這個問題就解出來了
int i, sum = 0;
for(i=1;i<=100;i++){
if(i%2==0){
continue;
} sum=sum+i;
print (i+" "+sum);
再來一道綜合題,
定義一個整數,判斷這個數是幾位數。
解題思路就是用取餘或除法來進行判斷
int i,a = 1234567891,b=1;
for(i=1;i<=10000;i++){
b=b*10;
if(a%b==a){
print("該數爲"+i+"位數");
break;
}
}
更多精彩請點擊http://www.gopedu.com/