UnityC#循环结构解题

来源:互联网 发布:淘宝网限时秒杀 编辑:程序博客网 时间:2024/06/05 16:52

欢迎来到我的博客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+2a的符号变化可写成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);

continuebreak的区别

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/

0 0