Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可被其包含的数字整除的数字_Javascript_Html_Algorithm_Math - Fatal编程技术网

Javascript 可被其包含的数字整除的数字

Javascript 可被其包含的数字整除的数字,javascript,html,algorithm,math,Javascript,Html,Algorithm,Math,我正在制作一个程序来接收输入,并确定它是否是一个自除数 自除数是一个可被其包含的每个数字整除的数 应输出“该数字为自除数”,否则应输出“该数字为非自除数” 例如,128是一个自除数,因为1、2和8都是128的除数。作为另一个例子,102不是一个自跳转数字,因为它包含一个数字0。作为第三个例子,26不是一个自除数,因为它不能被6整除 函数运行(){ var output=document.getElementById(“输出”); var a=parseInt(提示(“提交编号:”,“”); v

我正在制作一个程序来接收输入,并确定它是否是一个自除数

自除数是一个可被其包含的每个数字整除的数

应输出“该数字为自除数”,否则应输出“该数字为非自除数”

例如,128是一个自除数,因为1、2和8都是128的除数。作为另一个例子,102不是一个自跳转数字,因为它包含一个数字0。作为第三个例子,26不是一个自除数,因为它不能被6整除

函数运行(){
var output=document.getElementById(“输出”);
var a=parseInt(提示(“提交编号:”,“”);
var num=0;
而(a>0){
var num=a%10
如果(a%num==0){
a=数学楼层(a/10);
}否则{
output.innerHTML=“此数字不是自除法。”
打破
}
}
output.innerHTML=“此数字是一个自除数字。”
}

提交编号

以下是实现此逻辑的方法:

function run() {

  var output = document.getElementById("output");

  var num = parseInt(prompt("Submit number: ", ""));

  let n = num;

  while(num){
    let temp = num %10;
    if(n % temp !== 0){
      output.innerHTML = "This number is a not self dividing number."
      return;
    }
    num = Math.floor(num/10);
  }

  output.innerHTML = "This number is a self dividing number."
}
工作演示:

Vanila JS解决方案:

// using string to array conversion :

function selfDivisible(num){
  for(let n of [...num.toString()]){
      if(num % parseInt(n) !== 0){
      return "not divisible"
    }
  }
  return "divisible"
}
selfDivisible(128)

//----------------------------------------------------------------//

//plain mathematical implementation:

function selfDivisible(num){
  let n = num;

  while(num){
    let temp = num %10;
    if(n % temp !== 0){
      return "not divisible";
    }
    num = Math.floor(num/10);
  }
  return "divisible"
}
selfDivisible(221)


下面依次查找最低有效位
lsd
,并对其进行测试(不能为零,
n/lsd
不能有余数)

如果
lsd
测试失败,我们将返回
false

如果它通过了测试,那么我们除以10,将结果“切掉”当前最低有效数字。我们将结果存储在
前缀中

如果
prefix
为零,则我们没有更多的数字要测试,没有数字未通过测试,我们返回
true

否则,我们需要测试更多的数字,并递归地将
前缀
(以及
n
)传递到
isselfdivising
,以继续检查

函数是selfdivising(n,前缀=n){
常量lsd=前缀%10
如果(lsd==0 | | n%lsd)返回false
前缀=数学楼层(前缀/10)
返回前缀===0 | | Isselfdivising(n,前缀)
}
console.log(isself(138))//false
console.log(isself(128))//true
console.log(isself(102))//false
console.log(isself(0))//false
log(isself(1))//true
这应该可以正常工作

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style>
p {
  background-color: aqua;
}
</style>
</head>
<body>

<p>Output is: <span id="output"></span></p>

<script>
let output = document.querySelector('#output');
function run() {
  let num = prompt("Submit a number: ","").toString();
  
  let digits = num.split('');
  
  let isSelfDividing = true;
  
  digits.forEach(digit=>{
    if(Number(num)%Number(digit)!==0){
      isSelfDividing = false;
    }
  })
  
  if(isSelfDividing) {
    output.innerHTML = 'This number IS self-dividing';
  }
  else {
    output.innerHTML = 'This number IS NOT self-dividing';
  }
  }

run();
</script>
</body>
</html>


页面标题
p{
背景色:浅绿色;
}
输出为:

让output=document.querySelector(“#output”); 函数运行(){ 让num=prompt(“提交一个数字:”,“”)。toString(); 让数字=数字分割(“”); 让Isself=true; 数字。forEach(数字=>{ 如果(数字)%数字(位数)!==0){ Isself=false; } }) 如果(Isself){ output.innerHTML='此数字是自除'; } 否则{ output.innerHTML='此数字不是自除'; } } run();
一些提示:不要重新分配
A
,毕竟,您要检查它是否可以被其他各种数字(其数字)整除。首先,尝试编写一个循环,生成
a
的所有数字,而不修改
a
。您可以创建一份可以修改的
a
副本。一般提示:请说明您的问题所在并提出具体问题。您的“问题”不包含任何问题。在else条件中也添加一个
中断
,并且仅当
a==0
@nice\u dev我必须做什么才能使其不被操纵?SinaHeidari看到了这一点,它还处理被零除的问题。我可以不将其转换为字符串而在最后操纵输出吗?当然可以。但字符串到数组的方法非常干净,这就是我使用它实现的原因。我不能使用数组或字符串。你能根据我的代码给我一些建议吗这里是完整的代码让我们看看。