尽快写完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 ...
随机推荐
- CentOS下安装Redis及Redis的PHP扩展
1.安装Redis 1.1 如果没有安装wget,安装wget yum install wget 1.2 在http://redis.io/download页面查看redis版本,并下载安装 wget ...
- windows WSABUF 结构在IOCP 中应用时两个成员变量的意义
WSABUF 结构的原型如下: typedef struct __WSABUF { u_long len; char FAR *buf; } WSABUF, *LPWSABUF; 该结构在IOCP 中 ...
- 【HOW】SharePoint如何彻底删除用户
在网站中打开“人员和组”,在选中某一用户后,一般只有“从用户组中删除用户”操作.此操作只能将此用户从此用户组中删除,却不能从网站集中彻底删除. 要将用户从网站集中彻底删除,可按如下步骤操作: 1. 在 ...
- W5500 keep-alive的用途与用法--新华龙电子
大家是否遇到过这样的问题,W5500作为服务器已经建立连接,突然网线掉了,然后再去连接W5500,就连不上了.为什么?下面对这个问题进行解释说明,并提出解决办法. 图1中的上位机程序作为客户端,连接W ...
- fdfdfdfdfdfdfdfdfdfdfd
len := Length( Face[integer(FaceType)][Line-1] ); SetLength( Face[integer(FaceType)][Line-1], Len+1 ...
- 在 Arch Linux 玩百度 Flash 战曲游戏乱码
#!/bin/sh #From: http://hi.baidu.com/imtinge/item/3516761d314481542b3e22f0 #Info: CJK Unicode font M ...
- Fragment笔记整理
前言 一直在用Fragment,但是没有系统的整理过,Google了一下相关文章,看到了几篇,将几篇还不错的文章重点整理了下,很多是直接Copy的,只为做个笔记,以后翻来看比较方便,建议大家看一下下面 ...
- 针对“Can't download driver to specified address”错误
当用h-flasher检测flash-id时,可能会出现上述错误,个人认为当提示这个错误时,一般来说是sdram出现了问题,可以看看sdram有没有虚焊,或者周围的电阻电容是否正确. 在后来调板子的过 ...
- backtrack下vim的使用
root@bt:~# vim test.c //vim新建或者编辑test.c,执行后进入vim编辑器,按a键进入编辑状态,输入C代码 #include<stdio.h> void mai ...
- iOS开发 GET、POST请求方法(NSURLConnection篇)
Web Service使用的主要协议是HTTP协议,即超文本传输协议. HTTP/1.1协议共定义了8种请求方法(OPTIONS.HEAD.GET.POST.PUT.DELETE.TRACE.CONN ...