zoukankan      html  css  js  c++  java
  • 实验五:循环结构

    1.知识点:
                    (1)do   while语句其实可理解为实行do后面的式子while(直到) i 到哪截止就停止计算,while语句则需要 i 来控制它的范围,for语句也需要 i 来控制它的范围。

                    (2)求阶乘时是用fact(i)函数来求,可是朋友告诉了我一种别的方法:
                                                      i++;
                                                      sum=sum*i;
                        其实这样做也是和阶乘的原理是一样的,不过就不用写那么多了;
                        用阶乘是这样子写的:

    #include<stdio.h>
    double fact(int n);
    int main(void)
    {
    	int i,n=10;
    	double result,sum; 
    	sum=0;
    	for(i=1;i<=n;i++){
    		result=fact(i);
    		printf("%d!=%.0f
    ",i,result);
    		sum=sum+fact(i);
    	}
    	printf("1!+2!+...+10!=%.0lf
    ",sum);
    	return 0;
    }
    double fact(int n)
    {
    	int i;
    	double product;
    	product=1;
    	for(i=1;i<=n;i++){
    		product=product*i;
    	}
    	return product;
    }
    

      而用那种简单的方法,式子就比上面的少多了:

    #include<stdio.h>
    int main()
    {
    	double sum1=1,sum2=0,i;
    	while(i<10){
    		i++;
    		sum1=sum1*i;
    		printf("%.0lf!=%.0lf
    ",i,sum1);
    		sum2=sum2+sum1;
    	}
    	printf("1!+2!+...+10!=%.0lf",sum2);
    	return 0;
    }
    

      这就是聪明人和非聪明人的区别了吧hehe...

                     (3)斐波那契(Fibonacci)序列这个题老师上课讲了,利用do  while循环可以使得X1,X2变换数值直到达到 i 的最大数即题目要求数字.

                     (4)如果要求式子变换,需要带入中间数值去变换,再转换,比如:

    for(i=0;i<n;i++){
    		sum=sum+flag/denominate;
    		t=flag;
    		flag=flag+denominate;
    		denominate=t;
    	}
    

                

    2.实验过程中遇到的问题及解决方法:

                    (1)数学计算表达式不能更为简单地表述,数学问题...

    3.实验心得体会:

                    (1)需要多练多想,大胆去猜测然后实践,还要记清楚各种语句的表示方法...

  • 相关阅读:
    Linux基础3-1 Bash及其特性
    三、手写ORM实现数据库更新
    三、TCP协议
    一、OIS七层模型及数据传输过程
    泛型缓存原理
    树莓派公网服务器实现frp内网穿透
    Dto数据传输对象
    Ubuntu下 Nginx静态代理部署网页常见报错
    JWT权限验证
    解决传入的请求具有过多的参数,该服务器支持最多 2100 个参数
  • 原文地址:https://www.cnblogs.com/jyt1998/p/5964629.html
Copyright © 2011-2022 走看看