欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    常用算法(带答案).docx

    • 资源ID:4338122       资源大小:29.87KB        全文页数:16页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    常用算法(带答案).docx

    1 .累加输入一个整数n,求l+2+3+.+n的和。输入:一个整数输出:一个整数样例输入:10样例输出:55测试输入:4测试输出:10n=int(input()S=Oforiinrange(n+l):s+=iprint(s)2 .累乘输入一个整数n,求l*2*3+.*n的积。输入:一个整数输出:一个整数样例输入:5样例输出:120测试输入:10测试输出:3628800n=int(input()t=lforiinrange(lzn+l):t*=iprint(t)3 .计数输入一个整数n,统计ln范围内能同时被3和7整数的数有几个?输入:一个整数输出:一个整数样例输入:100样例输出:4测试输入:200测试输出:9n=int(input()js=0foriinrange(n+l):ifi%3=0andi%7=0:js+=lprint(js)4.最大值最小值输入一行整数,求这些整数中的最大值和最小值及其位置。输入:一行整数输出:最大值及其位置和最小值及其位置样例输入:346109样例输出:最大值10,位置在第4个,最小值3,位置在第1个!测试输入:10203040750测试输出:最大值50,位置在第6个,最小值7,位置在第5个!a=list(m叩(int,input().split()zd=aO;zx=aO;zdindex=O;zxindex=Oforiinrange(ljen(a):ifai>zd:zd=aizdindex=iifai<zx:zx=aizxindex=iPrint(,最大值,位置在第个,最小值,位置在第个!,.format(zd,zdindex+l,z×zz×inde×+l)5.数字分离组合输出所有三位数中,数字之和为15的数,要求尝试用数字分离和数字组合两种方法实现。结果前三项如下所示:159168177输入:无输出:若干个整数测试输入:测试输出:159168177186195249258267276285294339348357366375384393429438447456465474483492519528537546555564573582591609618627636645654663672681690708717726735744753762771780807816825834843852861870906915924933942951960数字分离:foriinrange(100,10):gw=i%10sw=i10%10bw=i100ifgw+sw+bw=15:print(i)数字组合forbwinrange(l,10)forswinrange(10):forgwinrange(10):ifbw+sw+gw=15:print(bw*100+sw*10+gw)6.穷举将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?结果前三项如下所示:19182821637324输入:无输出:若干种组合测试输入:无测试输出:1918282163732446432555406464873756828649197210108011188foriinrange(20+l):forjinrange(140+l):k=100-i-jifi*5+j*l+k*0.5=100:print(ij,k)7 .素数判断一个数是否是素数?输入:一个整数输出:是素数/不是素数样例输入:9样例输出:不是素数测试输入:3测试输出:是素数n=eval(input()js=Oforiinrange(n+l):ifn%i=O:js+=lifjs=2:Print(,是素数,)else:PrintC不是素数)8 .水仙花数水仙花数是指一个三位数其各位数字的立方之和等于它本身,如I:153=13+53+33请输出三位数中所有的水仙花数(一行一个)。第一项为:153测试输入:无测试输出:153370371407foriinrange(100,10):gw=i%10sw=i10%10bw=i100ifgw*3+sw*3+bw*3=i:print(i)9 .完备数完备数是指这个数的所有各个因子之和等于它本身,如:6=1+2+3判断ln范围内有哪些完备数?输入:一个整数n输出:Ln范围内的完备数,一行一个样例输入:100样例输出:628测试输入:1000测试输出:628496n=eval(input()foriinrange(n+l):s=0forjinrange(lj):ifi%j=0:s+=jifs=i:print(i)10同构数同构数是指一个数出现在它的平方数的右端,如:5是25的右端,所以5是同构数请输出Ln范围内所有的同构数输入:一个整数n输出:ln范围内的同构数,一行一个样例输入:100样例输出:1562576测试输入:500测试输出:1562576376n=eval(input()foriinrange(lzn+l):a=i*2ifstr(a)-len(str(i):=str(i):print(i)回文数又称对称数,如12321,请判断一个数是否是回文数?输入:一个数输出:是回文数/不是回文数样例输入:1221样例输出:是回文数测试输入:123431测试输出:不是回文数n=input()ifn=n:-l:Printr是回文数,)else:Print(不是回文数,)方法二:n=input()foriinrange(len(n)2):ifni!=n-i-l:breakifi=len(n)2-l:Print('是回文数,)else:Print(,不是回文数,)13 .加密将输入的字符串中所有字母向后移6位,到"z”或“Z”后又从“a”或“A”开始。输入:一串字符(只包含大小写字母)输出:加密后的一串字符样例输入:abABXyz样例输出:ghGHDef测试输入:ABxyz测试输出:GHdefsr=input()S="forXinsr:n=ord(x)+6iford(x.lower()+6>ord('z'):n=n-26s=s+chr(n)print(s)14 .最大公约数、最小公倍数输入两个整数m和n,请使用辗转相除法输出m和n的最大公约数和最小公倍数。输入:两个整数m和n输出:每次循环的过程(每项占5歹Q和最大公约数及最小公倍数样例输入:128样例输出:mnr1284840最大公约数:4最小公倍数:24测试输入:208测试输出:mnr2084840最大公约数:4最小公倍数:40m,n=map(int,input().split()print(,:5sr5s5s'.format(,m,n7r')mn=m*nWhiIeTrue:r=m%nprint('<5d<5d<5d,.format(mznjr)ifr=0:breakm,n=nzrPrintr最大公约数:%d,%n)Printc最小公倍数:%d'%(mnn)15 .选择法排序输入一个整数的列表,请用选择法对列表进行从小到大的排序。输入:一个整数的列表输出:每次循环的过程及结果样例输入:5,3,8,7,2样例输出:第1轮交换后:2,3,8,7,5第2轮交换后:2,3,8,7,5第3轮交换后:2,3,5,7,8第4轮交换后:2,3,5,7,8最后结果为:2,3,5,7,8测试输入:10,503,7测试输出:第1轮交换后:3,50,10,7第2轮交换后:3,7,10,50第3轮交换后:7,10,50最后结果为:3,1,10,50a=eval(input()foriinrange(len(a)-l):P=iforjinrange(i+ljen(a):ifaj<ap:P=jifp!=i:ap,ai=ai,apPrint('第轮交换后:'format(i+l,a)Printr最后结果为:)a)16 .冒泡排序输入一个整数的列表,请用冒泡排序方法对列表进行从小到大的排序。输入:一个整数的列表输出:每次循环的过程及结果样例输入:5,3,8,7,2样例输出:第1轮交换后:3,5,7,2,8第2轮交换后:5,2,7,8第3轮交换后:3,2,5,7,8第4轮交换后:3,5,7,8最后结果为:2,3,5,7,8测试输入:10,50,3,7测试输出:第1轮交换后:10,3,7,50第2轮交换后:3,7,10,50第3轮交换后:7,10,50最后结果为:3,7,10,50a=eval(input()foriinrange(len(a)-l):forjinrange(len(a)-i-l):ifaj>aj+l:aOLaO+l=aj+lUPrint('第轮交换后:'.format(i+l,a)Print('最后结果为:,,a)17 .插入排序输入一个整数的列表,请用插入排序方法对列表进行从小到大的排序。输入:一个整数的列表输出:每次循环的过程及结果样例输入:5,3,8,7,2样例输出:第1轮交换后:3,5,8,7,2第2轮交换后:5,8,7,2第3轮交换后:5,7,8,2第4轮交换后:2,3,5,7,8最后结果为:2,3,5,7,8测试输入:10,50,3,7测试输出:第1轮交换后:10,50,3,7第2轮交换后:10,50,7第3轮交换后:7,10,50最后结果为:3,7,10,50a=eval(input()foriinrange(ljen(a):forjinrange(i,0,-l):ifaj<aj-l:ajLaU-l=aj-l,ajPrint('第轮交换后:.format。,a)Printe最后结果为:',a)输入一个整数的列表,再输入一个整数X,在列表中按顺序查找是否存在X,若存在输出“找到了,在第*位!",若不存在则输出“不存在!”。输入:一个整数的列表和一个整数X输出:“找到了,在第*位!”或“不存在!”样例输入:5,3,8,7,22样例输出:找到了,在第5位!测试输入:5,3,8,7,29测试输出:不存在!a=eval(input()x=int(input()f=lforiinrange(len(a):ifai=×:f=0breakiff=0:PriM找到了,在第i位!,%(i+l)else:PrintC不存在!,)19.二分法查找输入一个整数的列表,再输入一个整数X,在列表中使用二分法查找是否存在X,若存在输出“找到了,在第*位!",若不存在则输出“不存在!”。输入:一个整数的列表和一个整数X输出:排序后、每次缩小范围后的情况,最后显示“找到了,在第*位!”或“找不到!”样例输入:5,3,8,7,2,10,1,4,2010样例输出:排序后:1,2,3,4,5,7,8,10,20缩小范围为:5-8缩小范围为:78找到了,在第6位!测试输入:5,3,8,7,29测试输出:排序后:2,3,578缩小范围为:34缩小范围为:44缩小范围为:54找不到!a=eval(input()x=int(input()al=sorted(a)b=O;t=len(al)-lPrint('排序后:'.format(al)whileb<=t:m=(b+t)2ifx=alm:Print('找到了,在第d位!'(a.index(x)+l)breakelifx>alm:b=m+lelse:t=m-lPriM缩小范围为:,.fOrmat(b,t)ifb>t:Print('找不到!')20.插入(1866)输入一行数,输入要插入的位置n和要插入的数X,编写程序实现将X插入到第n位,最后输出插入后的一组数输入:第一行若干个整数,第二行两个整数输出:若干个整数样例输入:35269210样例输出:3105269测试输入:1030346511测试输出:103034611a=list(m叩(int,input().split()a.append(0)n,x=map(intjnput().split()foriinrange(len(a)-l,n-2,-l):a=ai-lan-l=xforxina:print(x,end='')21.插入到有序的序列(1867)把一个数插入到一个有序的序列中,使得插入后的序列仍然有序。输入:第一行若干个整数,第二行要插入的整数输出:插入后的有序序列样例输入:3453126755样例输出:插入前:6,12,34,53,75插入后:5,6,12,34,53,75测试输入:34531267525测试输出:插入前:12,34,53,75插入后:6,12,25,34,53,75a=list(map(intjnput().split()x=int(input()a.sort()Printe插入前Oa)P=Oforiinrange(len(a):ifx<ai:P=ibreakelse:p=len(a)a.append(0)foriinrange(len(a)-p-l):a=ai-lap=×Printr插入后Oa)22.十进制转二进制(1578)样例输入:10a=int(input()S=whilea!=0:s=str(a%2)+sa=a2print(s)23.二进制转十进制(1579)s=input()n=0foriinrange(len(s):x=int(si)n=n+x*2*(len-i-l)print(n)24.十进制转八进制(1868)将输入的十进制数转换成八进制数输入:一个整数输出:一个字符串样例输入10样例输出12测试输入:50测试输出:62a=int(input()S="whilea!=0:s=str(a%8)+sa=a8print(s)25.八进制转十进制(1519)s=input()n=0foriinrange(len(s):x=int(si)n=n+x*8*(len(s)-i-l)print(n)26.十进制转十六进制(1800)a=10:'A',ll:B,12:'C',13:'D',14:'E',15:Fn=int(input()s="whilen!=0:x=n%16ifx>=10:x=axs=str(x)+sn=n16print(s)27.十六进制转十进制(1520)sr=input()s=0foriinrange(len(sr):x=sriifx>=,A':x=axs=s+int(x)*16*(len(sr)-l-i)print(s)

    注意事项

    本文(常用算法(带答案).docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开