假设我有两个long long,a和b,我需要相乘,然后得到值k对于一些大的k,这样a,b和k都在long long的范围内,但不是int 。为简单起见,a,b < k。 因此,代码将是: long long a, b, k;
cin >> a >> b >> k;
cout << (a * b)%k << "\n";
然而,因为a,b是如此之大,如果乘像上面,并且溢出和变为负,则模k将是
对于类,我必须编写一个方法来检查将某个有理数与整数相乘是否会导致溢出。 我已经写了下面的代码和它的作品,但我有一种感觉这可能是短,但我不知道如何: /**
* A method for multiplying a rational number with a given number
*/
public Rational multiply(long factor) {
try {