Milyen értéket ad vissza az alábbi algoritmus?
Milyen értéket ad vissza az alábbi függvény N=104567 esetén?
függvény FV(N:egész):egész
K:=0
ciklus amíg N<>0
K:=K+N mod 10
N:=N div 10
ciklus vég
FV:=K
függvény vége
Akárhogy számolom, nekem mindig 1-el kevesebb lesz a végeredmény, mit ami a megoldás szerint van.
A számjegyek összegét.
Hogy lenne 1-gyel kevesebb az összeg??
int fv(int n) {
_ int k = 0;
_ while (n != 0) {
_ _ k = k + n % 10;
_ _ n = n / 10;
_ }
_ return k;
}
int main() {
_ printf("%d\n", fv(104567));
_ return 0;
}
Az eredmény 23.
kezdetben:
N = 104567
K = 0
majd:
K = K + (104567 % 10) = 0 + 7 = 7
N = (104567 / 10) = 10456
K = K + (10456 % 10) = 7 + 6 = 13
N = (10456 / 10) = 1045
K = K + (1045 % 10) = 13 + 5 = 18
N = (1045 / 10) = 104
K = K + (104 % 10) = 18 + 4 = 22
N = (104 / 10) = 10
K = K + (10 % 10) = 22 + 0 = 22
N = (10 / 10) = 1
K = K + (1 % 10) = 22 + 1 = 23
N = (1 / 10) = 0 --> itt a vége
Próbáltad egy másik számmal?
Nem lehet, hogy valamiért kimarad az első számjegy az összegből?
Az N<>0 feltétel nem javallott. Inkább N >= 0 vagy N > 0 kellene.
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!