下载此文档

第六讲循环结构典型算法.pps


文档分类:IT计算机 | 页数:约26页 举报非法文档有奖
1/26
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/26 下载此文档
文档列表 文档介绍
第六讲循环结构典型算法主讲教师:马学文 2017 年3月 29 日内容提要 循环程序设计要点 输出 500 以的所有素数 求最小公倍数,最大公约数 输出斐波那契数列前 n项 45 人搬 45 块砖问题 求方程的近似实根 求一元函数定积分的近似值 循环程序设计要点?循环程序的实现要点: ?归纳出哪些操作需要反复执行? 循环体?这些操作在什么情况下重复执行?循环条件?选用合适的循环语句 for while do-while ?循环具体实现时考虑(循环条件): ?事先给定循环次数,首选 for ?通过其他条件控制循环,考虑 while 或 do- while 输出 500 以的所有素数[例 4- 10] 求 500 以内的全部素数,每行输出 10 个 for (m = 2; m <= 500; m++) if ( m是素数) printf ( "%d", m); n = sqrt(m ); for(i = 2; i <= n; i++) if(m % i == 0) break; if(i > n) printf("yes\n ") else printf("no\n ”); for (m = 2; m <= 500; m++){ n= sqrt(m ); for(i = 2; i <= n; i++) if(m % i == 0) break; if(i > n) printf("%d ", m); } 例 4- 10 源程序# include < > #include < > int main(void ) { int count, i, m, n; count = 0; for (m = 2; m <= 500; m++) { n = sqrt(m ); for (i = 2; i <= n; i++) if(m % i == 0) break; if(i > n) / *如果 m是素数*/ { printf("%6d", m); count++; if (count %10 == 0) printf( “\n”); } } } 求最小公倍数,最大公约数最小公倍数,是指能够被两个整数同时整除的最小整数。最大公约数,是指能够整除这两个数的最大整数。可采用穷举法: 求m与n的最小公倍数: for(i = n; ; i++) if(m%i ==0 && n%i ==0) break; printf (“最小公倍数是: %i”,i ); 求m与n的最大公约数: for( i=n; ; i-- ) if(i%m ==0 && i%n ==0) break; printf (“最大公约数是: %i”,i ); [补充例题 1] 求两个整数 m和n的最小公倍数,最大公约数展转相除法: 先用 m除以 n求得余数 r, 当r≠0时,再用除数做被除数、余数做除数再求余数, 如此反复,直至 r=0,除数即为所求的最大公约数。 p(=m * n) 除以最大公约数即为 m和n的最小公倍数 R 0 =m, R 1 =n , R 2 , R 3 , ……, R n =R n-2 /R n-1 , .. …. while(1) { r=m % n; if(r !=0) { m=n; n=r; } else break; }/*这时 n中即为最大公约数*/ while(n !=0) { r= m % n; m =n; n=r; } /*这时 m中即为最大公约数*/ [ [补充例题补充例题 1] 1]源程序源程序/*求 m,n 的最大公约数与最小公倍数*/ #include< > main() { int p, r, n, m; printf (" 请输入两个正整数:\n"); scanf ("% d,%d",&n,&m ); p=n * m; while(n !=0) { r= m%n ; m=n; n=r; } //最大公约数在 m中 printf ("最大公约数是% d\n 最小公倍数是% d\n ", m, p/m ); } 输出斐波那契数列前 n

第六讲循环结构典型算法 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数26
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mxh2875
  • 文件大小241 KB
  • 时间2017-03-29