int orders=1000000000;
int mod=pow(10,9)+7;
unsigned int total=4294967295;
total=(orders*(orders+1))%mod;
total/=2;
return total;
expected Answer= 21
BUT getting
runtime error: signed integer overflow: 1000000000 * 1000000001 cannot be represented in type 'int'
I also tried
int orders=1000000000;
int mod=pow(10,9)+7;
long long total=0LL;
total=(long long)(orders*(orders+1))%mod;
total/=2;
return total;
Same error
//Compiled with clang 11 using the latest C++ 17 standard.
May I know why this is happening? I thought maybe long long is getting truncated to int hence the 0LL, But still that didn't solve the issue.
When tried on other compiler, getting output
for 1st code:
-243309312
for second peice of code:
1904174336
Aucun commentaire:
Enregistrer un commentaire