[mock]10月11日
第二次mock。
出的题是,假设有一个地区不能使用7,都用之后的数字代替,比如8代表7,18代表16(中间有7和17).那么给出一个这个地区的数X,求普通地区的数Y。
首先是找规律,发现其实就是找给出的数X之前带有7的个数diff,然后输出就是X-diff。
之后就是怎么找带有7的数字的个数。
想的过程中,隐隐约约觉得,比如求一个数1394,那么应该要用到10以内或100以内的带7的数字的个数,于是就想把它们存起来。
F[1]表示1~10之间的带7的数字,是1,然后F[2]表示1~100之间的,是19。
然后推出了递推公式,F[i+1]=F[i]*9 - 10 ^(i+2)
然后拿个数字做试验,结果一开始拿了个错误的数,678,还自以为有大于等于7和小于7的,但其实这个地区的数字不能有7。
那么就拿58举例子,算出来之后觉得有点小,然后意识到这只是diff。
接着写程序。中间犯过的小错误不断。一是x = x / 10之后,把x改掉了,但最后仍然ans = x - diff,就错了。二是写了10 ^ i当做求幂值,其实要用pow。三是循环里没有i++。然后是很多边界的i+1之类的。
但整体这次感觉反应还行。
代码:
int convert(int x)
{
int F[50];
F[0] = 0;
for (int i = 1; i <= 50; i++)
{
F[i] = F[i - 1] * 9 + pow(10, i - 1); // F[2] = F[1] * 9 + 10 ^ 1; F[1] = F[0] * 9 + pow(10, 1-1) = 1;
} int original = x;
// calc how many num with 7 < x
int diff = 0;
int i = 0;
while (x != 0)
{
int k = x % 10;
x = x / 10;
if (k < 7)
{
diff += F[i] * k;
}
else // k > 7
{
diff += F[i] * (k - 1) + pow(10, i); // k == 8
}
i++;
}
int ans = original - diff;
return ans;
}
[mock]10月11日的更多相关文章
- 2016年10月11日 星期二 --出埃及记 Exodus 18:22
2016年10月11日 星期二 --出埃及记 Exodus 18:22 Have them serve as judges for the people at all times, but have ...
- 北京Uber优步司机奖励政策(10月5日~10月11日)
用户组:优步北京人民优步A组(适用于10月5日-10月11日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/ ...
- [mock]12月11日
给出一个二叉搜索树的先序遍历,要求重新构造出这个二叉搜索树.一开始给出了一个递归的算法,指出复杂度有更优的解法.然后想出来一个O(n)的算法,就是使用一个栈,然后依次判断新的节点比原来的大还是小,然后 ...
- [mock]10月4日
第一次mock,CollabEdit开一个页面,开始做题.题目是,有方法pow(m,n),m和n都大于1,给出N,有顺序的打印出前N个pow(m,n)的结果.前一个是:4,8,9,16,... 然后在 ...
- Android学习2013年10月11日
1.LinearLayout http://www.cnblogs.com/salam/archive/2010/10/20/1856793.html LinearLayout是线性布局控件,它包含的 ...
- Week5(10月11日):国庆后补课的复杂心情
Part I:提问 =========================== 1.说说你所知道的强类型视图HTML扩展方法. 2.请解释代码. @Html.ActionLink("链接文字& ...
- A song for a new begining 8月26日到10月11日 第一阶段
- 【¥200代金券、iPad等您来拿】 阿里云9大产品免费公测#10月9日-11月6日#
#10.09-11.06#200元代金券.iPad大奖, 9大产品评测活动! 亲爱的阿里云小伙伴们: 云产品的多样性(更多的云产品)也是让用户深度使用云计算的关键.今年阿里云产品线越来越丰富,小云搜罗 ...
- 北京Uber优步司机奖励政策(10月26日~11月1日)
用户组:优步北京人民优步A组(适用于10月26日-11月1日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/ ...
随机推荐
- Hibernate事务管理
User类: public class User implements Serializable{ public User(){} private Integer id; private String ...
- GridView中使用如下button OnClientClick代码会出现解析错误
在GridView中使用如下代码会出现解析错误: <asp:LinkButton ID="DeleteButton" runat="server" Cau ...
- js选中checkbox赋值给文本框
//js $(function(){ var name=""; var kmname=[]; var n= $("input[type=checkbox]"). ...
- spring boot 配置文件提示自定义配置属性
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- javascript Window对象 第16节
<html> <head> <title>浏览器对象</title> <script type="text/javascript&quo ...
- java PropertyChangeSupport委托帧听类的使用
要委托的Bean类写法. import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import ...
- 00_ForTest
-----该页是爬虫的测试页请忽略------- 1234545@qq.comadasdsdasdsad阿打算多少其热情为 asdasdasdasd4w5wsdvv啊实打实大 啊实打实大asdasda ...
- PAT_1007 素数对猜想
今天想更的那道题现在还没A出来.先把下午做的一道题更新了吧.快零点了.无奈啊. 问题描述: 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n&g ...
- js 判断数组中是否存在
/* 判断数组中是否存在 var somearray = ["mon", "tue", "wed", "thur"] s ...
- Razor与ASPX语法比较