算法14 ◉‿◉ 打印1-999之间所有的水仙花数
本帖最后由 不二如是 于 2017-5-20 07:39 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
程序分析:
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如: 153 是一个“水仙花数”,因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。
源代码:
**** Hidden Message *****
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
学习一下 看看 本帖最后由 krrred 于 2018-3-22 16:15 编辑
刚学到水仙花数的例题。来看看大神 的具体思路,谢谢,自己想了好久,头疼死了。
额,我来错地方了。。哈哈。抱歉。 学习一下 >>> for a in range(0,9):
for b in range(0,9):
for c in range(0,9):
if a*a*a + b*b*b + c*c*c == a*100 + b*10 +c:
print("水仙花数是:"+str(a)+str(b)+str(c))
水仙花数是:000
水仙花数是:001
水仙花数是:153
水仙花数是:370
水仙花数是:371
水仙花数是:407
>>> 0
学习一下 学习 。 window.onload = function(){
var str = '';
for(var i = 1; i <= 999;i++){
if(is_ss(i)){
str += i + ' '
}
}
alert(str);
function is_ss(n){
var num = n;
var a = Math.floor(num / 100);
num %= 100;
var b = Math.floor(num / 10);
num %= 10;
var c = num;
if(n == Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3)){
return true;
}
return false;
}
}; <!DOCTYPE html>
<html>
<head>
<title>14</title>
<script type="text/javascript">
var lista=new Array();
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
for(var k=0;k<10;k++){
var hua=Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3);
if(hua>0 && hua<1000 && (i*100+j*10+k)==hua){
lista.push(hua);}}}}
document.write("1-999间的水仙花有:"+lista);
</script>
</head>
<body>
</body>
</html> emm 看看 答案 本帖最后由 凌乱大帅比 于 2018-10-9 19:55 编辑
var break_up = function(n){
var h,t,b;
htb = [];
if(n>=1 && n<=9){
b = parseInt(n);
htb.push(b)
}
else if(n>=10 && n<=99){
t = parseInt(n/10);
b = parseInt(n - t*10);
htb.push(t,b)
}
else if(n>=100 && n<=999){
h = parseInt(n/100);
t = parseInt(n/10) - h*10;
b = parseInt(n) - h*100 - t*10;
htb.push(h,t,b)
}
}
for(var i=0;i<200;i++){
break_up(i);
console.log(htb);
}
算法部分,一直有bug......{:10_284:} {:10_284:}
目前就给出一个抓取个十百位的数字的fun()吧{:10_264:} 看一下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>1-999</title>
</head>
<body>
</body>
<script>
var arr=[]
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
for(var k=0;k<10;k++){
if((i*i*i+j*j*j+k*k*k)==(i*100+j*10+k)){
var sum = i*100+j*10+k;
arr.push(sum);
}
}
}
}
document.write(arr);
</script>
</html>
function lifang(n) {
n = Number(n);
return n * n * n;
}
function fF() {
for (var i = 100; i < 1000; i ++) {
var bw = String(i);
var sw = String(i);
var gw = String(i);
if (i == (lifang(bw) + lifang(sw) + lifang(gw))) {
document.write(i + "<br/>");
}
}
}