# Define large number. check this. c++ project!

1. Jun 22, 2008

### mgc

For the purposes of this problem we will define a large number as a positive whole number with at least eight digits. For example, 123456789 is a large number. Large numbers must NOT be expressed in exponential form.

Write a program that:

WHAT IS THE FIRST LARGE NUMBER?

WHAT IS THE SECOND LARGE NUMBER?

and

(2) then calculates the product of your two large numbers and prints;

THE PRODUCT OF your first large number
IS the calculated product.

Test your program with 1234512345123451234512345 as your first large number and 9876598765987659876598765 as your second large number.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include<iostream>
#include<iomanip>
using namespace std;

void main()
{
string first, second,
char ans;
bool again = false, ans2 = false;

do {
again = false;
cout<<"Enter the first LARGE number: ";
cin>>first;

cout<<"Enter the LARGE second number: ";
cin>>second;

if (first < 10000000)
{
cout<<"\nOne of the numbers is not 8-digit long. Try again.";
again = true;
cout<<endl;
}

} while (again);

answer = (int) first * (int) second;

cout<<"\n\nThe calculated product of "<<first<<" & "<<second

do{
cout<<"\nDo you want to try again? [Y/N]: ";
cin>>ans;

switch(ans)
{
case 'Y':
case 'y': ans2 = true; break;
case 'N':
case 'n': exit(1); break;
}

/*if
cout<<"Invalid Input. Try again."*/
} while (ans2);
}

can you correct this?

2. Jun 22, 2008

### D H

Staff Emeritus

Hints:
1. Is it valid to compare strings to integers?
2. What is the largest number that can be stored in an int? Can an int hold one of your large numbers? If not, why are you using ints?

3. Jun 22, 2008

### mgc

okay. thank you!

4. Jun 22, 2008

### mgc

help me to correct this prob. LARGE NUMBER

For the purposes of this problem we will define a large number as a positive whole number with at least eight digits. For example, 123456789 is a large number. Large numbers must NOT be expressed in exponential form.

Write a program that:

WHAT IS THE FIRST LARGE NUMBER?

WHAT IS THE SECOND LARGE NUMBER?

and

(2) then calculates the product of your two large numbers and prints;

THE PRODUCT OF your first large number
IS the calculated product.

Test your program with 1234512345123451234512345 as your first large number and 9876598765987659876598765 as your second large number.

****************************************************

#include <iostream.h>
#include <stdlib.h>
#include <cmath>

int main ()
{
char mybuffer [3000];
float a;
int b;
cout << "Enter First Large number: ";
cin.getline (mybuffer,30000000);
a = atof (mybuffer);
cout << "Enter Second Large number: ";
cin.getline (mybuffer,3000);
b= atoi (mybuffer);
cout << "Total is: " << a*b;
return 0;
}

5. Jun 23, 2008

### Zizy

Sadly I know only C, C# and Java, so I cant help you give code for C++.
Still, I think that the given task wants you to use strings (or arrays) for calculation. So, you will put first big number in one string, second one in another and then multiply them together - the same method of multiplication you do - first take one digit and multiply with other number, then second... and in the end sum everything. If even upper thing doesnt work, split strings in smaller pieces and multiply first digit with half of the other number (half meaning half digits), then with the other half. Sum them together... then 2nd digit etc etc.

6. Jun 23, 2008

### rcgldr

You'll need to do some extended precision math. The problem asks you to mulplity two 25 digit numbers with could result in a 50 digit product, which would need a 167 bit number, so might as well use 192 bit numbers, and then do extended precision math, which can be implemented similar to long hand muliplication (there are complicated arbitrary precision math algorithms, but these are complex).

7. Jun 23, 2008

### mgb_phys

That's still limited to the size of int
You are probably being asked to use strings to store the digits and then multiply them out in the same way you would do long multiplication by hand.
Storing the resut in another string.