Please help me with my project

Martin0027's Avatar, Join Date: May 2011
Light Poster
Write a program that will multiply arbitrarily large real numbers (stored in the chain). Numbers can be positive or negative and the program will accept a comma as decimal point.
Example output:
15321548949451231684.12654894856 x 15,658,213,548,949.5684516 =239908085351191302633721198032836,254474415727249 696

Classic calculator Is not problem for me, but this program is too hard for me.
So anyone who know how I can do this please help. Thank you
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
Store numbers as strings, then implement the maths algorithms you used to do long addition et al when you were 10 to solve them. Here's a simple example of addition and you can work out the rest (e.g. use C++ string objects instead of static buffers):
Code:
	char num1[5], num2[5], result[5];
	strcpy(num1,"0123");
	strcpy(num2,"0456");
	int carry=result[4]=0;
	for (int i=3; i>=0; i--)
	{
		int res=num1[i]-'0' + num2[i]-'0' + carry;
		if (res>9)
		{
			res-=10;
			carry=1;
		}
		else
		{
			carry=0;
		}
		result[i]=res+'0';
	}
	printf("%s+%s=%s\n",num1,num2,result);
Long division is trickiest so leave that until last. By the time you've done the rest you should be able to handle it. Start with addition, then do subtraction, then multiplication. Start with integer maths and it's up to you when you start adding functionality to handle fixed or floating point.

If you can't figure it out then do a few examples on paper to remind yourself how it was done, then do a few more while you figure out the algorithm, then you can implement that algorithm.
Martin0027's Avatar, Join Date: May 2011
Light Poster
Thank you so much !!!
Martin0027's Avatar, Join Date: May 2011
Light Poster
but I have another question. how I can transform classic number to string ??
Avenger625's Avatar, Join Date: Feb 2011
Go4Expert Member
U can use sprintf().