Ich habe eine Aufgabe:Berechnung und Datenlimits
auf Notebook in der Zelle (standart ausgerastert Notebook für Mathe/Zahlen) gemalt Rechteck mit Größe NxM (intergers). Wie viele verschiedene Rechtecke können dieses Rechteck enthalten?
Max-Wert für N und M ==^9 10 (1 000 000 000)
Wenn Ergebnis> = (10^9 + 7) anzeigen: Ergebnis mod (10^9 + 7)
ich weiß Formel:
M * (M + 1) * N * (N + 1)/4
und erkennen dieses Problem in C++:
#include <iostream>
#include <cmath>
#include <iomanip>
int main()
{
long double n, m;
std::cin >> n >> m;
long double n1 = (n*(n + 1)/2);
long double m1 = (m*(m + 1)/2);
long double count = std::fmod((n1 * m1), 1000000007);
std::cout << std::fixed << std::setprecision(0) << count;
return 0;
}
Aber wenn ich für den Test 1000000000 x 1000000000 schrieb
Mein Programm angezeigt mich 499.881.764, wenn Windows calclulator und other calculator 441 angezeigt = _ =
was falsch ist habe ich? Ich wäre sehr dankbar, wenn jemand ein Codebeispiel der richtigen Lösung zeigen könnte.
Können Sie ein Codebeispiel für eine korrekte Lösung anzeigen? – NemoUA
Können Sie diesen Algorithmus und Beispiel damit zeigen, ich bin so noobie in der Arbeit mit Zahlen in C++. – NemoUA