| | |
C++ Calculations
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Mar 2009
Posts: 5
Reputation:
Solved Threads: 0
Hello All
I am having some problems with a C++ class that i am taking and after looking around on the web I am still lost.
The assignment that I am working on right now is as follows:
If anyone could point me in a good direction i would be most great full
Thanx
I am having some problems with a C++ class that i am taking and after looking around on the web I am still lost.
The assignment that I am working on right now is as follows:
Two numbers are entered in from the keyboard. If the larger number is odd, the smaller number is added to an accumulator. Then the larger number is integer divided by two and the smaller number is doubled. Again if the larger number's division is odd, the smaller number's doubling is added to an accumulator. lf the larger number is even, nothing is added to the accumulator. This is repeated until the large number sequence equals zero. The accumulator now holds the multiplication answer. Write a program using functions, that will accomplish this task. Repeat until the user wishes to stop. lt is not necessary to display the accumulation work as shown in the examples. Output is to the screen and printer and should look like: Your Name Class # Date & Time XXXX times XXXX by conventional math = XXXXXXX XXXX times XXXX by Zoo's method = XXXXXXX Example 1) 75 x 23 = 1725 Larger Smaller Add to Accumulator 75 23 23 37 46 46 18 92 O 9 184 184 4 368 O 2 736 O 1 1472 1472 1725(TOTAL & PRODUCT) Example 2) 122 x 251 = 30622 Larger Smaller Add to Accumulator 251 122 122 125 244 244 62 488 O 31 976 976 15 1952 1952 7 3904 3904 3 7808 7808 1 15616 15616 30622(TOTAL & PRODUCT)
If anyone could point me in a good direction i would be most great full
Thanx
•
•
Join Date: Jul 2005
Posts: 1,753
Reputation:
Solved Threads: 283
Write it out by hand. It might start like this:
C++ Syntax (Toggle Plain Text)
enter two numbers. calculate the product of the two numbers. determine which number is larger, call it A, and call the other number B. use an accumulator, initialzed to zero as long as A is above zero if A is odd add B to accumulator divide A by 2 using integer math (means all remainders are dropped) //etc
Klatu Barada Nikto
•
•
Join Date: Jul 2005
Posts: 1,753
Reputation:
Solved Threads: 283
if A is even at anypoint, whether initially or not, then don't add B to accumulator, but you still need to divide A by 2 using integer math and double B. So if A = 44 and B = 11;
C++ Syntax (Toggle Plain Text)
A B Total Accumulated so far 44 11 0 22 22 0 11 44 44 5 88 132 2 176 132 1 352 484
Klatu Barada Nikto
AD: If the (originally) larger number is even you simply don't add the (originally) smaller one to the accumulator. Since "odd" just means that the one's bit is set, it's essentially binary mutiplication using shifts (division by 2) and adds.
kuru: Have you written a program before? Do you have an attempt for this one? Anything?
kuru: Have you written a program before? Do you have an attempt for this one? Anything?
•
•
Join Date: Mar 2009
Posts: 5
Reputation:
Solved Threads: 0
Nuc: so if i have you right, i could just write an 'if' statement saying:
and then i could wrap this in a function for later use
if(numA<numB) numA / 2.0 else accum +=numA
and then i could wrap this in a function for later use
•
•
Join Date: Mar 2009
Posts: 5
Reputation:
Solved Threads: 0
Ok
i have been tinkering around with the coding of this, and i think there is a problem with this function i have
could someone give me there input
the function works fine if numA starts smaller then numB but if numB is smaller then numA it sort of goes to the crapper
any help would be welcomed
thanx
i have been tinkering around with the coding of this, and i think there is a problem with this function i have
could someone give me there input
void getnums()
{
int numA, numB, x, result;
cout << "Your two numbers to multiply are?"<<endl;
cin >> numA >> numB;
if (numB < numA)
{
x +=numA;
numA = numB;
numB = x;
}
result = process( numA, numB);
cout << numA << " times " << numB<< " by conventional math = " << (numA * numB) <<endl;
cout << numA << " times " << numB<< " by Zoo's method = " << result <<endl;
}any help would be welcomed
thanx
Last edited by kuru225; Mar 24th, 2009 at 12:36 pm.
•
•
Join Date: Nov 2007
Posts: 979
Reputation:
Solved Threads: 209
Problem is that
You might have it a bit simpler like ...
x is not initialized to zero (I take that you simply want to swap the values).You might have it a bit simpler like ...
C++ Syntax (Toggle Plain Text)
if (numB < numA) { // use x only inside the if-block int x = numA; numA = numB; numB = x; }
![]() |
Similar Threads
- Trouble writing code for arithmetic calculations of complex numbers (C++)
- Calculations, Variables and Constants - Please help (VB.NET)
- Price Calculations (C#)
- random number generator and calculations (Java)
- Calculations (C++)
- Mortgage Calculations (C++)
- calculations in java (Java)
- Java Multidimensional Arrays (Java)
- simple calculations How? intHrlyRate, etc Help me (ASP)
Other Threads in the C++ Forum
- Previous Thread: Help with queues
- Next Thread: help ! Copy elements from 1 dimentional to 2 dimentional array
| Thread Tools | Search this Thread |
Tag cloud for C++
api application array arrays based beginner binary bmp c++ c/c++ calculator char char* class classes code coding compile compiler console conversion convert count data database delete deploy developer display dll dynamiccharacterarray email encryption error file format forms fstream function functions game generator givemetehcodez graph homeworkhelp iamthwee ifstream image input int java lib list loop looping loops map math matrix memory multiple newbie news number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg simple sorting spoonfeeding string strings struct template templates text tree url variable vector video visual visualstudio win32 windows winsock wordfrequency wxwidgets






