[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万/ ...
随机推荐
- php 5.3+ 连接mssql
php5.3+里已经没有mssql的dll扩展了,需要使用SQL Server Driver for PHP 这里有两个版本有两个版本支持不同的php版本. 1.SQL Server Driver f ...
- 移动端rem布局的适配mixin【转藏】
/*================================================================ 以下为基于ip5 宽度320做的适配,标准html{font-si ...
- 趣拍proguard配置
# Add project specific ProGuard rules here.# By default, the flags in this file are appended to flag ...
- mark jquery 链式调用的js原理
我们在使用jquery的时候会用到类似$("#id").css('color','red').show(200); 这样写有点减少代码量,减少了逐步查询DOM的性能损耗: js 原 ...
- CocoaPods安装过程中的大坑
一.CocoaPods是什么? CocoaPods是一个用Ruby写的.负责管理iOS项目中第三方开源库的工具,CocoaPods能让我们集中的.统一管理第三方开源库,为我们节省设置和更新第三方开源库 ...
- IOS-开发日志-UIScrollView
UIScrollView 1. contentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量. // 设置scrollView的滚动偏移量 scrollView. ...
- 初尝 Perl
本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是 ...
- CSS边框属性二---border-images
border-images 属性 主要用border-images 属性来制作自适应按钮和tab标签&自适应边框. 例子: border-images:url("img.png&qu ...
- jquery 放大图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript—W3school
一.JavaScript基础 1.写入HTML输出 2.对事件作出反应 3.改变HTML内容 4.改变HTML图像 5.改变HTML样式 6.验证输入 <script> Function ...