1 / 7
文档名称:

C程序设计经典程序举例.doc

格式:doc   大小:40KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C程序设计经典程序举例.doc

上传人:2286107238 2020/2/19 文件大小:40 KB

下载得到文件列表

C程序设计经典程序举例.doc

文档介绍

文档介绍:.:..C程序设计经典程序举例1、判断素数(循环、利用算法减少运算次数)例:1159:质因数分解正整数n是两个不同质数的乘积,试求出其中较大的。#include<>#include<>intmain(){longlongn,big;intsmall;introot,i,j;scanf("%lld",&n);for(small=2;small<=(int)sqrt(n);){ //素数判断过程,从最小素数开始root=(int)sqrt(small);for(i=2;i<=root+1;i++){if(small%i==0)break;} if(i<=root){ if(small==2)small++; elsesmall+=2; //只判断2和奇数,减少运算次数continue;}if(n%small==0){big=n/small;root=(int)sqrt(big);for(i=2;i<=root+1;i++){if(big%i==0)break;}if(i<=root){ if(small==2)small++; elsesmall+=2;continue;}else{break;//得到最大质因数,跳出循环}}}printf("%d%lld",small,big);return0;}2、递归与回溯算法(解决尝试性问题,每一级都对下一级有影响)例:1085:0/1迷宫问题给定一个由0(表示墙壁)和1(表示道路)的迷宫,请你判断进入迷宫后,仅通过横向和纵向的行走是否能从迷宫中走出来,即能否从坐标(1,1)走到(n,m)。#include<>#include<>intstarti,startj;intendi,endj;//ess=0;//用于判断是否成功通路intmain(){intvisit(inti,intj,intmaze[][10]);inti,j;intn,m;intmaze[10][10];scanf("%d%d",&n,&m);for(i=1;i<=n;i++)for(j=1;j<=m;j++){scanf("%d",&maze[i][j]);}starti=1,startj=1,endi=n,endj=m;if(visit(starti,startj,maze)==0){printf("NO");}else{printf("YES");}return0;}intvisit(inti,intj,intmaze[][10]){maze[i][j]=-1; //安全性判断已经经过的路if(i==endi&&j==endj){ess=1; //成功到达终点}//进行四个方向的尝试if(ess!=1&&maze[i][j+1]==1){visit(i,j+1,maze);}if(ess!=1&&maze[i+1][j]==1){visit(i+1,j,maze);}if(ess!=1&&maze[i-1][j]==1){visit(i-1,j,maze);}if(ess!=1&&maze[i][j-1]==1){visit(i,j-1,maze);}maze[i][j]=0; //尝试失败