Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Jun 22, 2008 #1

    mgc

    User Avatar

    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?
     
  2. jcsd
  3. Jun 22, 2008 #2

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    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?
     
  4. Jun 22, 2008 #3

    mgc

    User Avatar

    okay. thank you!
     
  5. Jun 22, 2008 #4

    mgc

    User Avatar

    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;
    }
     
  6. Jun 23, 2008 #5
    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.
     
  7. Jun 23, 2008 #6

    rcgldr

    User Avatar
    Homework Helper

    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).
     
  8. Jun 23, 2008 #7

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    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.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Define large number. check this. c++ project!
Loading...