Valaki meg tudná nézni, hogy mi lehet itt a baj?
Írtam egy programot, ami elvileg amikor lefuttatom, akkor működik is, de amikor beküldöm ellenőrzésre, akkor a rendszer mindig visszadobja azzal, hogy hibás. Megnéznétek, hogy mi lehet a probléma?
A feladat:
Tekintsük a következő sorozatképzési szabályt:
Ha ai páros, akkor ai+1 = ai / 2 , egyébként ai+1 = 3ai + 1.
Az a0 = 3 kezdőértékről indulva a fenti szabály az alábbi sorozatot generálja:
3 10 5 16 8 4 2 1 4 2 1 4 2 1 4 2 1 ...
A Collatz-sejtés (1937) szerint a fenti szabályt tetszőleges pozitív a0 kezdőértékre alkalmazva, előbb-utóbb eljutunk a 4 2 1 számhármas végtelen ismétlődéséhez. Ezt a sejtést még senki nem bizonyította, sőt igen nehéz matematikai problémaként tartják számon.
Írj C-programot, mely beolvassa a0 értékét, majd kiírja, hogy melyik az a legkisebb i index, melyre ai = 1. A fenti példára a helyes válasz 7.
A programom:
#include <stdio.h>
int main(void) {
int z;
int x;
printf("", z);
scanf("%d", &z);
if(z==1) {
printf("0");
return 0;
}
do {
if(z%2==0) {
(++x);
z=z/2;
}
else(z=3*z+1, ++x);
}
while(z>1);
if(z==1) {
printf("%d", x);
}
return 0;
}
printf("", z);
Ezzel nekem le se fordult.
else ágat átírtam rendesen
int x = 0;
Nem adtál neki kezdőértéket, így bármi lehetett benne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!