Hogy van a modulő C++-ban?
Figyelt kérdés
Azt hittem a % az, de most látom, hogy -1 % 5 az nem 4, hanem -1!2012. szept. 9. 00:24
1/4 anonim 



válasza:





2/4 iostream 



válasza:





Nagyon jó észrevétel! A trükk az, hogy a -1 és a 4 ugyanaz a maradékosztály modulo 5 szerint.
A % operátor pontos definíciója az alábbi egyenlőséggel van megadva:
(a/b)*b + a%b == a.
3/4 A kérdező kommentje:
de nekem matematikai értelmben vett moduló kell. Ami a legkisebb pozitív!
2012. szept. 9. 10:51
4/4 iostream 



válasza:





Matematikai értelemben a -1 és a 9 is jó eredmény.
Rövid guglizás után találtam ezt:
template<typename V>
V mod(const V& a, const V& b)
{
return (a % b + b) % b;
}
Ez explicit típusmegadást kíván bizonyos esetekben, úgyhogy inkább ezt javaslom:
template<typename T, class U>
decltype(T() + U()) mod(const T& a, const U& b)
{
return (a % b + b) % b;
}
Ehhez persze az új standardot bíró fordító kell.
További 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
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!