只考加法的面试题
2014-01-03 16:41
120 查看
问题出自编程之美。解法是自己思路
3=1+2
9=4+5
9=2+3+4
问题:对于正整数n,输出所有可能连续自然数(至少两个)之和的算式
分析正整数2,3,9,18,30
分析2,无解
分析3,3=1+2,1个解
分析9,9=2+3+4
分析18,对其进行因式分解,18=2*3*3
设定解中有2个数,无解
设定解中有3个数,则有2*3-1,2*3,2*3+1构成一个解
设定解中有6个数,无解
设定解中有9个数,则由2-4,2-3,2-2,2-1,2,2+1,2+2,2+3,2+4,即-2,-1,0,1,2,3,4,5,6,即3,4,5,6,构成一个解
设定解中有18个数,无解
分析90,对其进行因式分解,30=2*3*3*5
设定解中有3个数,有解
设定解中有5个数,有解
设定解中有9个数,有解
设定解中有15个数,有解
设定解中有45个数,有解
归纳,n的解个数只和n的质因数的个数有关,设n的质因数情况为
p1 k1个
p2 k2个
.......
pm km个
则解的个数为
(k1+1)(k2+1)...(km+1)-1个
求在64位正整数范围内解的个数最多的数?
未想好.
上网搜了搜,大家都说根据贪心策略,结果应该为3^x,好吧这显然是错的(比如1000以内最大的,3^6,解有7个,但是225的解就有8个,所以这个贪心不成立)。
自己还未想出解法,到此为止吧
3=1+2
9=4+5
9=2+3+4
问题:对于正整数n,输出所有可能连续自然数(至少两个)之和的算式
分析正整数2,3,9,18,30
分析2,无解
分析3,3=1+2,1个解
分析9,9=2+3+4
分析18,对其进行因式分解,18=2*3*3
设定解中有2个数,无解
设定解中有3个数,则有2*3-1,2*3,2*3+1构成一个解
设定解中有6个数,无解
设定解中有9个数,则由2-4,2-3,2-2,2-1,2,2+1,2+2,2+3,2+4,即-2,-1,0,1,2,3,4,5,6,即3,4,5,6,构成一个解
设定解中有18个数,无解
分析90,对其进行因式分解,30=2*3*3*5
设定解中有3个数,有解
设定解中有5个数,有解
设定解中有9个数,有解
设定解中有15个数,有解
设定解中有45个数,有解
归纳,n的解个数只和n的质因数的个数有关,设n的质因数情况为
p1 k1个
p2 k2个
.......
pm km个
则解的个数为
(k1+1)(k2+1)...(km+1)-1个
求在64位正整数范围内解的个数最多的数?
未想好.
上网搜了搜,大家都说根据贪心策略,结果应该为3^x,好吧这显然是错的(比如1000以内最大的,3^6,解有7个,但是225的解就有8个,所以这个贪心不成立)。
自己还未想出解法,到此为止吧
相关文章推荐
- 面试题~位运算实现两个整数的加法
- 编程之美读书笔记2.21—之考加法的面试题
- 面试题47 不用+-*/ 做加法
- 剑指offer——面试题47:不用加减乘除做加法
- 【剑指offer】6.5发散思维能力——面试题47:不用加减乘除做加法
- 面试题47—不用加减乘除做加法
- 面试题之不用加减乘除四则运算符号的加法
- 只考加法的面试题
- 编程之美只有加法的面试题
- 只考加法的面试题
- 程序员面试题精选100题(55)-不用+、-、×、÷做加法
- 面试题47:不加加减乘除做加法
- 编程之美-只考加法的面试题
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 编程之美---只考加法的面试题
- 【剑指Offer学习】【面试题47:不用加减乘除做加法】
- 只考加法的面试题
- 剑指Offer面试题47(Java版):不用加减乘除做加法
- 编程之美——2.21 只考加法的面试题
- 一个数拆分成连续自然数的和(只考加法的面试题)