C/C++ Define large number. check this. c++ project

  • Thread starter Thread starter mgc
  • Start date Start date
  • Tags Tags
    C++ Project
AI Thread Summary
The discussion revolves around writing a program to handle large numbers, defined as positive whole numbers with at least eight digits, without using exponential notation. The program should prompt the user for two large numbers, calculate their product, and display the result in a specific format. Key points include the need for the program to handle very large numbers, which cannot be stored in standard integer types due to their size limitations. Participants emphasize using strings to represent these numbers and suggest implementing multiplication through methods akin to long-hand multiplication. There are concerns about comparing strings to integers and the necessity of using appropriate data types for large number calculations. The conversation also touches on the importance of ensuring user inputs are valid and the potential for implementing extended precision math to accommodate the large product resulting from multiplying two 25-digit numbers.
mgc
Messages
3
Reaction score
0
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:

(1) asks for two inputs.

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
AND your second 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,
long int answer = 0;
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
<<"is "<<setw(16)<<answer;

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?
 
Technology news on Phys.org
We don't do your homework here. We help you do your own homework.

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?
 
okay. thank you!
 
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:

(1) asks for two inputs.

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
AND your second 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;
}
 
Sadly I know only C, C# and Java, so I can't 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 doesn't 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.
 
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).
 
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.
 

Similar threads

Back
Top