C++ int Multiplication
#include <iostream>
using namespace std ;
int main ( int argc , char * argv []){
// Check the number of parameters
if ( argc < 1 ) {
// Tell the user how to run the program
std :: cerr << "Usage: " << argv [ 0 ] << " takes 1 parameter: the value of int to be multiplied " << std :: endl ;
return 1 ;
}
int a = stoi ( argv [ 1 ]);
long int b = stol ( argv [ 1 ]);
cout . precision ( 10 );
cout << "Multiple itself as int: " << a * a << endl ;
cout << "Multiple itself as long int: " << b * b << endl ;
}

Compile and run the program using `-std=c++11`

.

`cpp-int-multiply ‹master`* › ./int-multiplication.out 1000
Multiple itself as int: 1000000
Multiple itself as long int: 1000000
cpp-int-multiply ‹master* › ./int-multiplication.out 10000
Multiple itself as int: 100000000
Multiple itself as long int: 100000000
cpp-int-multiply ‹master* › ./int-multiplication.out 100000
Multiple itself as int: 1410065408
Multiple itself as long int: 10000000000
cpp-int-multiply ‹master* › ./int-multiplication.out 1000000
Multiple itself as int: -727379968
Multiple itself as long int: 1000000000000

The results seems to be weird because the multiplicated number exceeds the max of int.

Within for loops, the `int i = 0`

should be used carefully. The calculation `i*i`

is problematic even i is not exceeding the max. There are solutions to this. We could convert `i`

to double `(double)i`

in situ. Or we could simple use `long int`

.

Source code at repl.it.

Results from asciinema.

A Random #TIL# for You