还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
[2]={{0,1},{1,0},{0,T},{T,0}}int mainz,〃〃〃,//freopen in.txt,r stdin;int i,j,n,m,next i,next j,x,ch,count;〃%whilescanf d%d”,n,m!=E0Fi=j=next_i=next_j=x=ch=count=0;memseta,,sizeofa;〈while countn*ni=,a[i][j]+ch%26;next_i=i+direction[x]
[0];next_j=j+direction[x]
[1];=,ifa[next_i][next_j]!||next_i0|next_i=n|next_j0||next_j=m〃按顺序向其他方向x=x+l%4;next_i=i+direction[x]
[0];next_j=j+direction[x]
[1];ch++;count++;i=next_i;二」;j next}fori=0;in;i++forj=0;jm;j++printf%4c,a.[i][j];〃〃printf\n;}return0;题目十二15分设计一个函数其中”代替一个无限循环小数,为固定部分,为循环体要求f$a,$b,“$a,$b$a$b输出一个的最简分数表达这个有理数,并测试“x/y”-
13.14135=48623/3700#includeiostream#includecmathusing namespace std;int calint x,int y{return!yx:cal y,x%y;}〃辗转相除void ffloats,char loop[]{=二=一int signal;abss sNULL:sign1;long n3=0;inti=0;=,for;loop[i]!\0;i++n3=loop[i]-O+n3*10;//chart]to usignedlonglong m3=pow10,float i-l;s=abss;long n2=l,m2=l;float tempos;for int j=0;;j++{long dj=longtemp;iftemp==longdj break;teHip=s*pow10,float j;m2=pow10,float j;}n2=temp;*long ml=m2*m2*ni3;long nl=n3*m2+n2*m2*ni3;long h=calml,nl;二ml/h;nl/=h*sign;s*=sign;,z,,,/,/,z/coutsloop=nl/\mlendl;int main{〃〃f-
13.14,135;return0;题目十三15分输入个坐标前个互不相同,且不共线,判断第个点与前个点所组成的三角形的位置4343关系内、外、上#includeiostream#includecmathusing namespace std;struct point{double x,y;;double lenpoint A,point B{return sqrtpow A.x-B.x,2+powA.y-B.y,2;{〃海伦公式double areapoint A,point B,point Cl/2*absA.x*B.y+B.x*C.y+C.x*A.y-A.x*C.y+B.x+A.y+C.x*B.y;//vector doublea=len B,C;double b=len C,A;double c=len A,B;double p=.5*a+b+c;return sqrtp-a*p-b*p-c*p;int flagpoint A,point B,point C,point D{double ABC=areaA,B,C;double ABD=area A,B,D;double ACD=area A,C,D;double BCD=areaB,C,D;cout«endl«ABD+ACD+BCD-ABC«endl;/*return absABD+ACD+BCD-ABC=lE-5-l:ABD||ACD||BCD1:0;相加与不等在外,返回ABC ABC-1此处表示与误差超过则说明在外ABD+ACD+BCD ABC10^-5,由于开根导致精度损失,如要克服可以用行列式算法相加与相等,如果double ABC其中一个面积为则在线上,返回相加与相等,如面积为则在内,返回0,0ABC0,ABC1*/int main{pointA,B,C,D;cinA.xA.y;coutendl;cinB.xB.y;coutendl;cinC.xC.y;coutendl;cinD.xD.y;coutendl;coutflagA,B,C,Dendl;return0;题目十四15分至间共出现了几次限制内11,000,000,000T3s#includeiostreamlong flongn{long j0,f1;//counter,factorlong10,h0,c0;//low,high,currentwhilen/f!=0{二1n-n/f*f;,,///coutl I/endl;//testc=n/f%10;h=n/f*10;二二c0j+=h*f:c=lj+=h*f+l+l:j+=h+l*f;/*curr=0counter=High*factorcurr=l counter=High*factor+12curr9counter=High+1*factor*/f*=10;//12hreturn j;()int main{()std::coutf1E9;return0;)题目十五(15分)已知在国际象棋中,女皇的走法是可以像车一样控制整排横纵方向格子,也可以像象一样控制斜排(并且没有距离上的限制)如果给定一个的国际象棋棋盘,我们要求解“在棋盘上放上个皇后使它们互相不阻挡各n*n n自的行进路线”的摆法,即任何一组“横竖斜”上有且仅有一个皇后问题时,是否有解?n=8如果无解请输出n“no answer如果有解请按例子格式输出整个棋盘如有多组解,仅输出其中一组例假设题中n=3,no answer假设题中输出n=4,0010100000010100(处有皇后处空白)10forint i=0;imax_;i++{sum=a+b;a=b;b=sum;return sum;void loop_printint num,char chr{forint i=0;inum;i++std::cout«chr;std::cout«\n;int main{int line_max=7;char chr=A;forint line=0;lineline_max;line++{loop_printfline+l,chr;chr++;return0;题目二5分有个电子钟,点显示为即小时制,那么请问一天时间内,出现连续个相同1212:0012243数字的钟点有几个?#includeiostreamusing namespacestd;bool checkint time{int h=time/100;int m=time-100*h;小时制return h=12m=59h0true:false;//12int main{int time=0;〃总计数器int j0;whiletime1270{//max12:59intt=time;int n
[4];forint i=0;i4;i++{n[i]=t%10;t/=10;}ifn[l]==n
[2]n
[0]==n[l]11n
[3]==n[l]checktime{//cout«n
[3]«n
[2]«:«n[l]«n
[0]«\n;//test;j++time++;cout«total:«j*2«endl;题目三5分进制的四位数中有几个符合如下特征将其分别表示为进制、进制、进制,在每种10161012状态下,分别将各个位上的数相加,能得到个相等进制数310例如2992进制1029922+9+9+2=22进制1218941+8+9+4=22进制:16BB011+11+0=222992-2999#includeiostream#includecmathusing namespacestd;int convertintnjnt c{float high_p=0;int sum=0;inta
[4]={00,0,0};,forint i=0;;i++{float testN=powc,float i;ifn=testNhigh_p=i;else break;forint i=O;high_p!=-l;i++{a[i]=n/powc,high_p;n-=a[i]*powc,high_p;high_p-;forint i=0;i4;i++{sum+=a[i];}return sum;int main{int j=0;forint i=1000;i=9999;i++{ifconverti,16==converti,10converti,10==converti,12{cout«i«endl;j++;cout«j;return0;第二阶段题目题目一5分不引入临时变量写出功能swapa,bvoid swapinta,int b{a+=b;b=a-b;a-=b;题目二5分分别代表个数字,已知she3八二he2sheshe=#includeiostreamint main{forint he=15;he=96;he++forint s=l;s=9;s++ifhe*he==100*s+hestd::cout«he*he«endl;return0;题目三5分有条狗、、、他们分别在一条的公路上步行,速率均为初始在处,4A BC D,100m5m/s,A30m B初始在处,初始在处,初始在处,初始左右方向是随意的,任意两狗相遇则65m C75m D95m各自掉头掉头时间不计,速率保持请问,条狗最终都离开公路的最大时间是几秒?5m/s4#includeiostreamint main{std::cout«95/5;return0;题目四(5分)中的高级石头剪刀布问题Big BangScissors-PaperPaper-Rock Rock-Scissors Rock-Lizard Lizard-SpockSpock-ScissorsScissors-LizardLizard-Paper Paper-Spock Spock-Rock规则是左边的手势赢右边的手势,现有玩家、输入各自选择的手势,得出胜负Pl P2,#includeiostream#includecmath usingnamespacestd;int mainint p2,pl;cout«
1.Paper«endl«
2.Rock«endl«
3.Lizard«endl«
4.Spock«endl«
5.Scissors«endl;cin»pl»p2;float n=pl-p2;〃此算法由提供if n*pow-l,fabsn0@yaozizi cout«p2win;else ifn==0cout«duce;elsecout«pl win;return0;)题目五(5分)游戏规则根火柴,每次取根,谁取走最后一根判输现在人和计算机博弈,设计一个211-4程序保证计算机必胜,要求每回合人与计算机各输入(或返回)一个代表取走火柴根数的数,直到游戏结束#includeiostream usingnamespacestd;int main{intn=21;intp,c;whilen!=O{cin»p;whilep4||p=0||n-p0{cout«err,input again«endl;cin»p;}ifn!=O{ifn!=lcout«5-p«endl;else{cout«PC wins;break;ifn=5n-=5;}题目六10分下列式子2+3+4=91+2+3+4=10显然右边的数都能表示为个连续自然数之和开始,暂称之为冏数但似乎、等数n n212332都不能写成儿个数之和的形式,所以它们不是冏数这里有个可行的判断方法为上限为则测试N,1+2+31+2+3+41+2+3+4……+N2+3+42+3+4+……+NN-2+N-l+N是否等于N这是一种可行但非常暴力的穷举实际上冏数还是有一些规律可循的,请设计一个优于之前提到的算法要求输入一个数,并判断它是否为冏数/*如果一个数能被奇数整除,则必能写成=平均数*中间数的形式,所以是冏数L=3X.如果一个数是合数,如果其中有奇数因子,则回到为冏数;如果它是的乘方,则不是冏21,2数证明它无法写成奇数个相加,因为除不尽奇数;也不能写成偶数个相加,中间数有两个,和必为奇数,这个奇数必然是欲判断数的一个因子.如果一个数是素数,则必须是、、、个数相加得来,这样才能得到奇数,根据36101418……高斯求和公式,这样的和必有奇数因子综上只有的乘方、素数、小于的自然数,不是冏数26*/#includeiostreamusing namespacestd;bool checklongtar{bool flag=false;iftar6flag=false;else{{〃偶数是否是的阶乘iftar%2=02whiletar%2==0tar/=2;tar==lflag=false:flag=true;}{〃奇数是否是素数elsedouble end=tar;forint i=3;i=sqrtend;i+=2{iftar%i==O{flag=true;break;}else continue;}return flag;int main{int tar;cin»tar;bool flag=checktar;cout«flag;return0;题目七10分现有一个固定的正方形区域,可以把它看作是一个数据库中的特别的二维码1110101001011011101100100其中每一位表示黑和白,假设这种二维码容错性只有即只要有位以上不符合要求就无法5%,1识别现在输入一个的类似区域相当于扫描一个二维码,如果在容错范围内,则认为它可识别5*5如果不是精确匹配,需输出错误位的位置#includeiostream#includecmathusing namespacestd;int main{int err=0,j=0;char a
[26];,,,,char b
[26]=;forint i=0;i25;i++{cin»a[i];ifa[i]!=b[i]{;j=ierr++;}iferr==2cout«fail;else iferr==0cout«matched;else{int y=j+l/5+l;intx=j%5+l;,,,1;cout««x«,,«y«}return0;题目八(10分)每个人每天早上都要思考一个问题,这个问题的历史已经悠久得无法追溯,那就是今天午饭吃什么现在有个腻歪的人,他已经妥协于人工智能来解决日常问题,妄图找出吃饭问题的通解已知根据区域定位有以下地方可去范围品尝坊、张三疯、南区食堂1a bc范围北区食堂、咪哆2d e范围大小姐的店3f根据远近程度和价格因素,希望一周天去范围的几率为去范围的几率为去范围5120%,270%,的几率为(理论值)310%请写一段程序,随机输出个字母(实际值),确定半个月的吃饭问题(不考虑跨平台)注15意以上概率是指【如果】取输出个数趋近于无穷时的概率,而不是指次等式四舍五15*20%入得到的输出结果#includeiostream#includewindows.h//linux/dev/random//#includectimeusing namespacestd;/*float set_rand{〃低精度取种,需循环辅助srandtime_ttimeNULL;float r=rand%1000;return r/10;//.000-.999*/float SetRand{LARGEJNTEGER Start;QueryPerformanceCounterStart;〃高精度取种srandlongStart.LowPart;long RndNum=rand%1000;return floatRndNum/1000;//.000-.999}int main{forint i=0;i15;i++{ifSetRand=.2{,ifSetRand=l^cout«a;,else ifSetRand/3cout«c;else cout«b;},else ifSetRand.9cout«f;else{,ifSetRand=.5cout«d;else cout«e;}return0;题目九10分约瑟夫是一名犹太历史学家他在自己的日记中写道,他和他朋友与个战友共人被罗3941马军队包围在洞中他们讨论是自杀还是被俘,最终决定自杀自杀规则规定,所有人围成一个圈,由一人开始报数,报到的被杀死,下面的人继续从报31数,约瑟夫终和他的朋友活了下来问最初约瑟夫和他的朋友占据这个队伍的位置各为第几个?无脑穷举,结果、1631#includeiostreamusing namespacestd;int main{intj=0;int s=0;//jmp3intn
[41];forint i=0;i41;i++n[i]=l;forint i=0;j39;i++{。
个人认证
优秀文档
获得点赞 0