Cześć, pomóżcie znaleźć błąd - mam zadanie z wielomianem - podany stopień (n), współczynniki (t[]) oraz x więc wyliczam wartość (Hornerem), ale później trzeba wyświetlić resztę z dzielenia całkowitego przez zadane m.
Trochę mi zajęło ogarnięcie reszty gdy wartość wielomianu jest ujemna, znajomy podlinkował stronę - do ujemnego wyniku trzeba dodać dzielnik tyle razy żeby została dodatnia reszta np. -7 mod 3 ==> -7 + 3*3=2 więc ok, już było prosto, sprawdziłem dla kilku przypadków, ale niestety wynik nadal niepoprawny w większości testów a nie widzę błędu. Help.
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
long n,i;
cin>>n;
long long m,x,pom,t[n+1];
for(i=0;i<=n;i++) cin>>t[i];
cin>>m>>x;
pom=t[n];
for(i=n-1;i>=0;i--) pom=pom*x+t[i];
if(pom<0 && abs(pom)%m!=0) cout<<((abs(pom)/m)+1)*m+pom;
else cout<<(abs(pom)%m);
}