So I'm trying to print all values of x,y,z from this equation x − 2y 3z = 0 (value of between 1-5, the value of y is between 6-10, and z is between 3-7) on HTML through javascript but the
document.getElementById("display").innerHTML = x,y,z;
Only displays the maximum value of x, y, z. instead of any possible solution. So I'm unsure whether there is a problem with the for loops and the way I'm trying to display on the HTML page. This is the output I want
function Solve() {
{
var x = [];
var y = [];
var z = [];
var ans = [];
// x-2y 3z=0
// x3[1,5] y3[6,10] z3[3,7]
console.log("x\ty\tz\n\n");
for (x = 1; x <= 5; x ) {
for (y = 6; y <= 10; y ) {
z = (2 * y - x) / 3.0;
if (x >= 0 && y >= 0 && z >= 0) {
if (x % 1 == 0 && y % 1 == 0 && z % 1 == 0) {
if (x >= 1 && x <= 5 && y >= 6 && y <= 10 && z >= 3 && z <= 7) {
(document.getElementById("display").innerHTML = x), y, z;
}
}
}
}
}
for (y = 6; y <= 10; y ) {
for (z = 3; z <= 7; z ) {
x = 2 * y - 3 * z;
if (x >= 0 && y >= 0 && z >= 0) {
if (x % 1 == 0 && y % 1 == 0 && z % 1 == 0) {
if (x >= 1 && x <= 5 && y >= 6 && y <= 10 && z >= 3 && z <= 7) {
document.getElementById("display").innerHTML = y;
}
}
}
}
}
for (z = 3; z <= 7; z ) {
for (x = 1; x <= 5; x ) {
y = (x 3 * z) / 3.0;
if (x >= 0 && y >= 0 && z >= 0) {
if (x % 1 == 0 && y % 1 == 0 && z % 1 == 0) {
if (x >= 1 && x <= 5 && y >= 6 && y <= 10 && z >= 3 && z <= 7) {
document.getElementById("display").innerHTML = z;
}
}
}
}
}
}
}
<center>
<p>x - 2y 3z = 0</p>
<button onclick="Solve()">Solve</button><br />
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
<span id="display"></span>
</center>
CodePudding user response:
You can try following code to print the solutions for the equation:
html:
<center>
<p>x - 2y 3z = 0</p>
<button onclick="Solve()">Solve</button><br />
<div id="solution" style="color: green"></div>
</center>
javascript :
function Solve()
{
const solutions=[];
for(let x=1;x<=5;x )
for(let y=6;y<=10;y )
for(let z=3;z<=7;z )
if (x-2*y 3*z==0)
solutions.push([x,y,z]);
var solutionElement = document.getElementById("solution");
solutionElement.innerText = "The solutions are:"
solutions.forEach(solution => {
const node = document.createElement("div");
node.innerText = `x= ${solution[0]}, y=${solution[1]}, z=${solution[2]}`;
solutionElement.appendChild(node);
});
}
PS: You can apply style however you want.
CodePudding user response:
It seems to be OP's objective to list all integer solutions for the given equation in a given range for x, y and z. The following will deliver that solution:
// x-2y 3z=0
// x3[1,5] y3[6,10] z3[3,7]
const res=[];
for(let x=1;x<=5;x )
for(let y=6;y<=10;y )
for(let z=3;z<=7;z )
if (x-2*y 3*z==0)
res.push([x,y,z]);
document.querySelector("tbody").innerHTML=res.map(r=>`<tr><tr><td>${r.join("</td><td>")}</td></tr>`).join("");
th,td {text-align:right; width:20px;padding: 0 6px}
.centered {text-align: center}
table {margin: 0 auto}
<div >
<p>x - 2y 3z = 0</p>
<table><thead><tr><th>x</th><th>y</th><th>z</th></tr></thead>
<tbody></tbody></table>
</div>