zoukankan      html  css  js  c++  java
  • MATLAB循环结构:break+continue+嵌套

    1. break语句:终止当前循环,继续执行循环语句的下一语句;
    2. continue语句:跳过循环体的后面语句,开始下一个循环;
    3. 例:求[100,200]之间第一个能被21整除的整数
    for n=100:200      %循环语句
      if rem(n,21)~=0    %选择语句
       continue
      end
     break
    end
    n
    
    程序输出结果为n=
    105
    1. 循环的嵌套
    2. 若一个 数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。
    for m=1:500
      s=0;
      for k=1:m/2
         if rem(m,k)==0
           s=s+k;
    end
    end
    if m==s
    disp(m);
    end
    end

    输出:6
    28
    496


    1. 用筛选法求某自然数范围内的全部素数。
    2. 素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),...,直到再划去不超过(根号m)的倍数,剩下的都是素数。
      m=input('m=');
      p=1:m;
      p(1)=0;
      for i=2:sqrt(m)
         for j=2*i:i:m
          p(j)=0;
      end
      end
      n=find(p~=0);
      p(n)
      
      m=9
      
      ans =
      
           2     3     5     7

      外循环控制i从2~根号下m变化,内循环在p中划去i的倍数(不包括i),p中剩下的数都是素数。find函数找出p非0元素的下标并赋给变量n(注意:n为向量)

    3. 关于在p中划去i的倍数,可利用矩阵运算一步完成:
    4. m=input('m');
      p=2:m;
      for i=2:sqrt(m)
          n=find(rem(p,i)==0&p~=i);
      p(n)=[];
      end
      p
      
      m9
      
      p =
      
           2     3     5     7
  • 相关阅读:
    git日常使用的常用命令总结
    wordpress-技术博客主题推荐
    git日常使用的常用命令总结
    wordpress-技术博客主题推荐
    Centos系统安装Python3.7
    LeetCode-----翻转二叉树
    搭建 WordPress 博客教程
    echarts 去掉网格线
    调整柱状图圆角弧度
    Echarts设置y轴值间隔 以及设置 barWidth : 30,//柱图宽度
  • 原文地址:https://www.cnblogs.com/freesblog/p/3989493.html
Copyright © 2011-2022 走看看