




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
几个有意思的算法题1.题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。 在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。 高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得博士学位的年月日。提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21请严格按照格式,通过浏览器提交答案。注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。分析:这实际就是“三天打鱼、两天晒网问题”。程序实现:(java写的)java packageForth;publicclassDateOfNdays/*高斯日记(给定日期,算出X天后的日期)*/*是否是闰年*/booleanIsleapYear(intyear)return(year%400=0|year%4=0&year%100!=0);/*获得某年某月的最大天数*/intGetMaxDay(intyear,intmonth,intday)switch(month)case1:case3:case5:case7:case8:case10:case12:return31;case4:case6:case9:case11:return30;case2:return(IsleapYear(year)?29:28);default:return-1;/*获得X天后的日期*/voidGetXDays(intyear,intmonth,intday,intX)for(inti=1;i=X;i+)if(day!=GetMaxDay(year,month,day)day+;elseif(month!=12)month+;day=1;elsemonth=day=1;year+;System.out.println(X+天后的日期是+year+/+month+/+day);答案:1799-7-162.题目标题: 排它平方数 小明正看着 203879 这个数字发呆。 原来,203879 * 203879 = 41566646641 这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。 具有这样特点的6位数还有一个,请你找出它! 再归纳一下筛选要求: 1. 6位正整数 2. 每个数位上的数字不同 3. 其平方数的每个数位不含原数字的任何组成数位答案是一个6位的正整数。请通过浏览器提交答案。注意:只提交另一6位数,题中已经给出的这个不要提交。注意:不要书写其它的内容(比如:说明性的文字)。javaview plaincopypackageForth;publicclassExcludeNumber/*排它平方数*/longPingNum=0;/存储平方/*判断一个数是否有重复数字*/publicbooleanIsSame(longx)longstore=newlong7;longr;inti=0;while(x!=0)/分离该数的每一位,存入store数组r=x%10;x=x/10;storei=r;i+;longresult;for(intj=0;j5;j+)/判断有无重复数result=storej;for(intk=j+1;k6;k+)if(result=storek)returntrue;returnfalse;publicbooleanIsSame2(longNum,longn)longstore=newlong7;longr;inti=0;while(n!=0)r=n%10;n=n/10;storei=r;i+;longstoreping=newlong18;i=0;while(Num!=0)r=Num%10;Num=Num/10;storepingi=r;i+;for(intk=0;k6;k+)/将该数的每一位与其平方的每一位比较,看是否有相同的数for(intj=0;ji;j+)if(storek=storepingj)returntrue;returnfalse;publicvoidselectNum()/筛选排他数for(longn=100000;n=999999;n+)if(IsSame(n)/有相同的数字,则跳过continue;elsePingNum=n*n;if(IsSame2(PingNum,n)/该数的平方中是否有与该数相同的数字continue;else/符合条件,则打印System.out.println(n);答案:6391723.标题: 振兴中华 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 要求跳过的路线刚好构成“从我做起振兴中华”这句话。 请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。注意:不要提交解答过程,或其它辅助说明类的内容。javaview plaincopy/*振兴中华*/intarray=0,1,2,3,4,1,2,3,4,5,2,3,4,5,6,3,4,5,6,7;intcopyarray=newint45;/显示路径的拷贝数组intstartI=0,startJ=0;/入口intendI=3,endJ=4;/出口intsuccess=0;intcount=0;/*初始化拷贝数组*/publicvoidinitcopy()for(intk=0;k4;k+)for(intd=0;d5;d+)copyarraykd=10;/*遍历访问*/publicvoidvisit(inti,intj)copyarrayij=arrayij;if(i=endI&j=endJ)count+;System.out.print(n显示路径:n);for(intk=0;k4;k+)for(intd=0;d5;d+)if(copyarraykd=0)System.out.print(从);elseif(copyarraykd=1)System.out.print(我);elseif(copyarraykd=2)System.out.print(做);elseif(copyarraykd=3)System.out.print(起);elseif(copyarraykd=4)System.out.print(振);elseif(copyarraykd=5)System.out.print(兴);elseif(copyarraykd=6)System.out.print(中);elseif(copyarraykd=7)System.out.print(华);elseif(copyarraykd=10)System.out.print(一);elseSystem.out.print(一);System.out.println();if(j!=4&arrayij+1=arrayij+1)visit(i,j+1);if(i!=3&arrayi+1j=arrayij+1)visit(i+1,j);copyarrayij=10;/*主调方法*/publicvoidtest()initcopy();visit(startI,startJ);System.out.println(共有+count+种);结果截图:4.标题: 颠倒的价牌 小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。 其标价都是4位数字(即千元不等)。 小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参见p1.jpg)。 这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0 都可以。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊! 当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为开始数字。 有一天,悲剧终于发生了。某个店员不小心把店里的某两个价格牌给挂倒了。并且这两个价格牌的电视机都卖出去了! 庆幸的是价格出入不大,其中一个价牌赔了2百多,另一个价牌却赚了8百多,综合起来,反而多赚了558元。 请根据这些信息计算:赔钱的那个价牌正确的价格应该是多少?答案是一个4位的整数,请通过浏览器直接提交该数字。注意:不要提交解答过程,或其它辅助说明类的内容。javaview plaincopypackageForth;publicclassReverseNumber/*实现数字的翻转*/publicintreverse(intn)intstore=newint4;intresult=0;intr;inti=0;while(n!=0)/分离每个数,存入store中r=n%10;n=n/10;storei=r;i+;for(intk=0;ki;k+)if(storek=3|storek=4|storek=7)/数字中有3、4、7的不能翻转return-1;elseif(storek=6)/数字中有6,则转为9storek=9;elseif(storek=9)/数字中有9,则转为6storek=6;for(intj=0;ji;j+)/计算翻转后的数if(store0=0)/最后一个数字为0,不能翻转return-1;if(j=0)result=storej;elseresult=result*10+storej;/System.out.println(result);returnresult;publicvoidselectNum()intsub=0;intsub2=0;for(inti=1000;i=9999;i+)/遍历所有4位数if(reverse(i)=-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文明班会发言稿
- 时间管理培训课程
- 时间像小马车课件封面
- 2025版生态修复工程爆破作业安全协议
- 二零二五年度地簧门工程安装与验收合同
- 二零二五年度数字化工厂设备资产重组与转让合同
- 2025版跨境电商进口贸易代理服务合同样本
- 二零二五年度高速公路道路施工劳务安全监理合同示范文本
- SQ事业单位二零二五年度校园安保人员聘用合同
- 二零二五年度食品安全技术咨询合同模板
- 预防接种基础知识课件
- GB/T 9869.2-2025橡胶用硫化仪测定硫化特性第2部分:圆盘振荡硫化仪
- 护栏生产及安装方案(3篇)
- 厂区参观流程规范
- 污水厂培训课件
- 科协单位涉密管理制度
- 夏季安全生产试题及答案
- 体育教师专业考试试题及答案
- 配网防外破管理制度
- 不寐的中医辨证论治课件
- 2024年福建晋园发展集团有限责任公司权属子公司招聘6人笔试备考题库及参考答案详解一套
评论
0/150
提交评论