第3章 程序结构和常用算法概要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 程序结构和常用算法概要

二、循环(或重复)结构 如计算输出1~20之间奇数的平方值的程序段: int n=1; do { System.out.println(n+×+n+=+n*n); n=n+2; }while(n20); 例3-6:求两个数的最大公约数和最小公倍数。用辗转相除法。 分析: 求最大公约数可使用“辗转相除法”(我国古代数学家秦九韶1247在《数书九章》中记载了此方法)。 1)输入两个数m,n。 2)以n除m,求得余数r(要满足0≤rn)。 3)判断r是否为0,若r=0,此时的n值即为最大公约数,算法结束。若r≠0,转到下一步。 二、循环(或重复)结构 4)更新被除数和除数,n送m,r送n,转到2)。 最小公倍数等于被除数与除数的乘积除以最大公约数。 程序如下: //Factor.java import javax.swing.*; class Factor { public static void main(String[] args) { int m,n;//定义变量 int m1,n1; int r; String input; input=JOptionPane.showInputDialog(输入第一个数:);//输入对话框 m=Integer.parseInt(input);//转换成整数 input=JOptionPane.showInputDialog(输入第二个数:);//输入对话框 n=Integer.parseInt(input);//转换成整数 二、循环(或重复)结构 m1=m;n1=n;//保存原始的两个数,求最小公倍数时要用 do { r=m1%n1;//求俞数 m1=n1; n1=r; }while(r!=0);//余数不等于0,继续求余数 JOptionPane.showMessageDialog(null,最大公约数:+m1+\n最大公倍数:+m*n/m1,结果,JOptionPane.PLAIN_MESSAGE);//打印结果 } } 三、其他辅助语句 1 break语句 在某些时候,我们需要在某种条件出现时强行终止循环,而不是等到循环条件为flase时退出循环。此时,可以用break来完成这个功能。循环结构中,break语句跳出当前的循环(提前结束),执行循环结构后面的语句。 例3-7:求a~b之间的所有素数。 分析:判断a是否为素数的方法是:用a分别除以2到a-1,如果其中有一个能整除,则就不是素数。还可扩展成用a分别除以2到a平方根,如果其中有一个能整除,则就不是素数。 程序代码如下: //Prime.java import java.io.*; class Prime { 三、其他辅助语句 public static void main(String[] args)throws IOException { int a,b;//定义变量 int r,line=0; BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//创建对象,输入缓冲流 System.out.print(Please input first integer number:); a=Integer.parseInt(br.readLine());//输入的第一个字符串转换成整数 System.out.print(Please input second integer number:); b=Integer.parseInt(br.readLine());//输入的第二个字符串转换成整数 for(int n=a;n=b?;n++) { r=(int)Math.sqrt(n);//平方根取整 int m; for(m=2;m=r;m++) if(n%m==0)break;//有一个能整除,即余数为0,此数就不是素数 三、其他辅助语句 if(mr) { System.out.print(n+); line++;//没打印一个素数,计数器加1,控制每行打印的个数 if(line%10==0)//打印10个数后,计数器回0,回车换行 System.out.println();// } } System.out.println(); } } 2 return语句 return(返回)语句用于给方法返回一

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档