算法竞赛入门经典--简单题题解

2-5  分数化小数

先输出整数部分,然后按照c的大小逐位输出小数的部分,最后一位记得判断是否大于5,大于5需要四舍五入!

 

2-6 排列

用1,2,3,.。。,9组成3个三位数,每个数字只能出现一次,三个数比值为1:2:3.  这一题不需要想的太复杂,直接枚举123-333之间的数a,对a,2a,3a逐位取余数,并用mark数组记录1-9数字使用情况来做判断。

 

例题:3-5 生成元

题目:如果x加上x各个数字之和等于y,就说x是y的生成元,求输入数的最小生成元。

方法:类似素数筛法,先枚举1-100000以内所有正整数的m,求他们各自的和y,ans[y]=m,输入数字时直接查表即可得到结果。

 

例题:3-6 环状序列

输入字符串,长度可以测出为n,看成一个长度为n的环,顺时针方向即有n种表示方法,输出最小的字典序。

方法:该题有一个较难处理的点,即利用什么方式表示环,例题解给出一个较为巧妙的方法。

s[(p+i)%n],其中,n为数组的长度,p为初始的点。i为0-n-1的循环,具体可以看书上题解理解。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值