暴雨将至。
暴雨将至。
未归档
将一个正整数拆分成若干个互不相同的正整数且乘积最大(JS)
全部文章
未归档
2016(4)
2018ACM训练题目+思考(10)
2018牛客多校(3)
ACM(47)
acm-icpc(1)
ACM-动态规划(1)
ACM-备战天梯赛(1)
ACM-训练赛(1)
c++(1)
ccpc(1)
cf(2)
codefoces(2)
codefoces 个人赛水题记录(4)
codeforces(7)
Cover the Paths(1)
dfs(1)
dijkstra(1)
dp(11)
gcd(1)
hackerrank(1)
hankrank(1)
pick定理(1)
poj(3)
SAT(1)
sdut(5)
sdut-acm(1)
string(3)
Taotao Picks Apples(1)
uva(1)
vim(1)
vim,acm(2)
Vocabulary(2)
动态规划(1)
匹配(1)
区域赛(1)
区间dp(1)
后缀数组(1)
字典树(1)
完全平方数(1)
山理工(1)
快速排序(1)
愚人节(1)
新突破,新知识(1)
暴力(1)
期望(1)
积分(1)
算法(2)
编程(1)
编译原理(1)
网络流(1)
莫比乌斯反演(1)
贪心(1)
趣味编程(1)
题解(1)
题集(1)
高斯消元(1)
归档
标签
去牛客网
登录
/
注册
将一个正整数拆分成若干个互不相同的正整数且乘积最大(JS)
731 浏览
0 回复
2017-01-10
暴雨将至。
+关注
在红殿群里有人问到这个问题。想了想,这与其说是个编程题,不如说是个数学问题,
算法
只要想到了并不难。
<
head
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=gb2312
"
/>
<
title
>
拆分整数
</
title
>
</
head
>
<
body
>
请输入要拆分的正整数:
<
input type
=
"
text
"
name
=
"
number
"
/>
<
input type
=
"
button
"
value
=
"
计算
"
onclick
=
"
splitnum();
"
/>
<
script language
=
"
javascript
"
>
function
splitnum()
...
{
var
N
=
document.all.number.value;
//
定义正整数
var
flag
=
true
;
//
标志是否还能减下去,true 表真
var
result
=
new
Array();
//
定义数组用来保存拆成的正整数
var
key
=
2
;
//
定义减数
var
Last
=
N;
//
定义余数
var
i
=-
1
;
//
定义数组标号
if
(N
<=
2
)
...
{
document.write(
"
没有挑战性
"
);
}
else
...
{
while
(flag)
...
{
Last
=
Last
-
key;
//
余数减去减数
if
(Last
>=
0
)
//
如果余数大于等于0
...
{
i
++
;
//
标号自加一
result[i]
=
key;
//
保存减数
}
else
//
如果小于0,不能保存该减数。将余数拆成一个个1,从数组尾部开始加到数组的每一个元素,加完为止
...
{
flag
=
false
;
//
终止循环
Last
=
Last
+
key;
//
恢复余数的值
while
(Last
>
0
)
...
{
result[i]
++
;
//
从尾部开始每个元素加1
if
(i
==
0
)
i
=
result.length
-
1
;
//
特殊的,如果余数大于数组的长度,则返回再加一遍
else
i
--
;
//
下标自减1
Last
--
;
//
余数自减1
}
}
key
++
;
//
减数自加一
}
document.write(
"
将
"
+
N
+
"
拆成:
"
);
//
document.write是往屏幕输出
var
chengji
=
1
;
for
(i
=
0
;i
<
result.length;i
++
)
//
数组名.length是取得数组包含的元素个数
...
{
chengji
=
chengji
*
result[i];
document.write(result[i]);
if
(i
!=
result.length
-
1
)
document.write(
"
+
"
);
}
document.write(
"
乘积是:
"
+
chengji);
}
}
</
script
>
</
body
>
</
html
>
举报
收藏
赞
评论加载中...