Hogyan írjak egy legkisebb közös többszöröst számoló programot?
Valami(A,B,C,D):
AA:=A; BB:=B; CC:=C
Ciklus amíg nem(A=B és B=C)
Ha A>B akkor B:=B+BB
Ha B>C akkor C:=C+CC
Ha C>A akkor A:=A+AA
Ciklus vége
D:=A
Eljárás vége.
Ezt kaptam segítségül,de hogyan tovább.
Sok számnál js-ben
<script>
var szamok = new Array(2,5,8,13);
function kozos(szamok){
var max = 0;
for(i=0;i<szamok.length;i++){
max = Math.max(max,szamok[i]);
}
var tobbszoros = false;
var j=1;
var k=0;
while(!tobbszoros){
for(i=0;i<szamok.length;i++){
if((max*j)%szamok[i]==0){
k++;
tobbszoros = max*j;
}
else{
tobbszoros = false;
i=szamok.length;
}
}
j++;
}
return(tobbszoros);
}
alert(kozos(szamok));
</script>
Ja bocs, ilyesmi (debuggold :D)
<script>
var szamok = new Array(2,4,5,13);
function kozos(szamok){
var max = 0;
for(i=0;i<szamok.length;i++){
max = Math.max(max,szamok[i]);
}
var tobbszoros = false;
var j=1;
var k=0;
while(!tobbszoros){
for(i=0;i<szamok.length;i++){
if((max*j)%szamok[i]==0){
k++;
}
else{
tobbszoros = false;
i=szamok.length;
}
if(k==4){
tobbszoros = max*j;
}
k = 0;
}
j++;
}
return(tobbszoros);
}
alert(kozos(szamok));
</script>
Egy kísérlet, a kétes D nélkül:
#include <iostream>
int lkkt(int a, int b, int c)
{
int aa = a;
int bb = b;
int cc = c;
while(not (a == b && b == c)){
if(a > b) b += bb;
if(b > c) c += cc;
if(c > a) a += aa;
}
return a;
}
int main()
{
std::cout << "lkkt(1, 2, 3) = " << lkkt(1, 2, 3) << "\n";
std::cout << "lkkt(2, 3, 4) = " << lkkt(2, 3, 4) << "\n";
std::cout << "lkkt(3, 4, 5) = " << lkkt(3, 4, 5) << "\n";
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!