尽快写完Math!
(1)Arranging Coins
解题思路一:这个想法是关于二次方程,得到算术和的公式是sum =(x + 1)* x / 2
所以对于这个问题,如果我们知道和,那么我们可以知道x =(-1 + sqrt(8 * n + 1))/ 2 向下取整。
代码如下:
public class Solution {
public int arrangeCoins(int n) {
return (int)((-1 + Math.sqrt(1 + 8 * (long)n)) / 2);
}
}
解题思路二:利用给定的n不停的减去1,2…,直至n小于要减去的数字。
代码如下:
public class Solution {
public int arrangeCoins(int n) {
int result = 0;
int add = 1;
while (n >= add) {
n -= add;
add++;
result++;
}
return result;
}
}
(2)Factorial Trailing Zeroes
解题思路:
因为所有的trailing zero来自因子5 * 2。
但有时一个数字可能有几个5因子,例如,25有两个5因子,125有三个5因子。 在n! 操作,因子2总是充足。 所以我们只计算从1到n的所有数字中的5个因子。
计算5的个数时, 最简单的方法是 SUM(N/5^1, N/5^2, N/5^3...)
代码一:
public class Solution {
public int trailingZeroes(int n) {
return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);
}
}
代码二:
public class Solution {
public int trailingZeroes(int n) {
if (n < 1) {
return 0;
}
int number = 0;
while (n / 5 != 0) {
n /= 5;
number += n;
}
return number;
}
}
(3)Palindrome Number
解题思路:判断一个数字是否是回文数字,不能像字符串那样一个字符一个字符比较!!!所以将数字反转如果与原数值相同就是回文数字。
代码如下:
public class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
return x == reverse(x);
}
public int reverse(int x) {
int rst = 0;
while (x != 0) {
rst = rst * 10 + x % 10;
x /= 10;
}
return rst;
}
}
(4)Rectangle Area
解题思路:
找到重复部分矩形的坐标表示,两个大矩形面积相加减去重叠部分面积即可。
代码如下:
public class Solution {
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int left = Math.max(A,E), right = Math.max(Math.min(C,G), left);
int bottom = Math.max(B,F), top = Math.max(Math.min(D,H), bottom);
return (C-A)*(D-B) - (right-left)*(top-bottom) + (G-E)*(H-F);
}
}
(5)Reverse Integer
解题思路简单明了。
代码如下:
public class Solution {
public int reverse(int x) {
int result = 0;
while (x != 0) {
int tail = x % 10;
int newResult = result * 10 + tail;
if ((newResult - tail) / 10 != result) {
return 0;
}//判断是否溢出
result = newResult;
x /= 10;
}
return result;
}
}
尽快写完Math!的更多相关文章
- 快考试了,尽快写完HashTable。
(1)Count Primes 质数(素数):在大于1 的自然数中,除了1和它本身之外,不能被任何其他整数整除. 解题思路:使用一个boolean类型的数组,从i(2) 开始循环,将小于N的i的倍数都 ...
- HDU 4640 状态压缩DP 未写完
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4640 解题思路: 首先用一个简单的2^n*n的dp可以求出一个人访问一个给定状态的最小花费,因为这i个 ...
- 不写完不让回家的JQuery的事件与动画
在这看不见太阳的小黑屋里,苦逼的一天又开始了 好了闲话我也就不扯了,接下来我就来说说我对jQuery事件和动画的理解吧!!! 还是得再扯两句,我们敬爱的,Y老师讲完了,jQuery事件和动画,对着我们 ...
- 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.
刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.
- Scrum:The Definition of Done —— 作业有没有写完呢?
Scrum:The Definition of Done -- 作业有没有写完呢?_苗得雨_新浪博客 http://blog.sina.com.cn/s/blog_59450ffc0102eiai.h ...
- 用putty玩linux的时候由于以前用window 习惯写完东西按一下ctrl+s 保存
问题描述:用putty玩linux的时候由于以前用window 习惯写完东西按一下ctrl+s 保存,但是在putty一按下就不能再输入了.后来查找到:ctrl+s 是putty的一个命令大概是这样子 ...
- Word 双栏排版最后多一页空白页删不掉、左栏文字没写完就到右栏了
1. 问题 问题:Word双栏排版,最后多一页空白页,删不掉.如图: 原因分析:删不掉是因为末尾文字处其实有个下一页分节符,只不过可能看不到. 如何清晰的看到? 视图 > 大纲,就可以看到了.如 ...
- XObject.java 对象还没写完,希望电脑不会丢失。坏笑,早点见。
/*面向对象强调的是对象, 面向过程强调的是功能行为,打开行为,关闭行为,执行行为,把多个行为封装成对象执行更强大的功能就是面向对象,是把多个函数, 多 个行为封装在一起,单一的函数执行对象的功能太困 ...
- 写完批处理脚本,再写个Gradle脚本,解放双手
前言 上一篇写个批处理来帮忙干活---遍历&字符串处理中,我们已经学习如何写批处理脚本来帮我们做一些简单的重复性工作,本篇继续来学习如何用 Gradle 写脚本,让它也来帮我们干活 Gradl ...
随机推荐
- linux下XAMP集成开发环境搭建流程总结
一.安装xampp: 1.用wget下载安装包; 2.为安装包添加执行权限; 3.直接安装到/opt/; 4.添加开机启动:ln -s /opt/lampp/lampp /usr/bin/ 二.防火 ...
- mysql中的模糊查询
转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...
- XML中& <> 单引号' 双引号 " 报错
由于xml中 这些字符是特殊字符,所以把&改成& 就行了 ,注意后面一定要带一个分号; < < 小于号> > ...
- Unity3D人物头顶名称与血条更新与绘制
using UnityEngine; using System.Collections; public class NPC : MonoBehaviour { //主摄像机对象 private Cam ...
- java关于值传递和引用传递的有趣试验
上代码: public class Demo { public static void main(String[] args) { test_1(); test_2(); } public stati ...
- 无需Try catch 的UI事件封装类
在UI处理中,经常需要进行异常处理,以便在错误发生时能够进行一些自定义的操作,比如,弹出消息框给用户,进行重试操作,记录日志等,如果能够让用户写代码时不用写try...catch,而只是关注业务逻辑的 ...
- java中的运算符
1. 赋值运算符: (=) 2. 算术运算符: (+ ,- , * , /, %) 3. 逻辑运算符: (&& ,||, !) 4. 关系 ...
- 规则引擎集成接口(七)规则引擎调用Java类
规则引擎调用Java类 通过myEclipse编写一个简单工程,其中方法是两数相加等到结果,既结果1=输入值1+输入值2.实现规则调用外部接口的方法有三种. 1:接口实例:在myEclipse中制作一 ...
- Struts2:国际化
链接:[Java:国际化] src下有国际化资源文件:lan.propertieslan_zh_CN.properties 中文系统系统默认使用zh_CN文件,没有的话使用基本文件lan.proper ...
- Map小结
Map主要用于存储健值对个人理解:因为Map是根据键得到值,因此需要保证键值的唯一性,不允许键重复(重复了覆盖了),但允许值重复.1.HashMap根据键的HashCode 值存储数据,根据键可以直接 ...