C#

int a = int.Parse("123") + int.Parse("456");

Of course you would use variables inside

`TryParse `

instead of constant strings.
See more:

hiii,

how can i do my project?

note: we dont use biginteger class also

we dont use arithmetic operatiors

how can i do my project?

C#

string str1="4567995244...4457"; string str2="1458795568...85498"; str1+str2; // addition str1-str2; // differance str1*str2; // multiplication str1/str2; // division

note: we dont use biginteger class also

we dont use arithmetic operatiors

Comments

If I understood your question correctly, you first have to change the data type to something you can use in calculation. For example:

Of course you would use variables inside

C#

int a = int.Parse("123") + int.Parse("456");

Of course you would use variables inside

`TryParse `

instead of constant strings.
Permalink

Share this answer

Comments

Sergey Alexandrovich Kryukov
29-Dec-12 21:50pm

Parse is better, because this API name correctly tell us what really happens, unlike "Convert". My 5.

—SA

—SA

Wendelius
4-Jan-13 15:07pm

That's true, thanks :)

If BigInteger is not good enough, look around here: http://www.codeplex.com/Wikipage?ProjectName=sine[^]

Permalink

Share this answer

Comments

Sergey Alexandrovich Kryukov
29-Dec-12 21:53pm

Interesting, my 5. However, OP's idea about not using BigInteger is not motivated; most likely, this is just a mistake. As a rule of thumb, OP's "I want" or "I don't want" cannot be taken seriously.

—SA

—SA

Probably. But most likely the OP was told to implement these basic operation as pure symbol/string manipulation.

Sergey Alexandrovich Kryukov
30-Dec-12 13:16pm

Agree...

—SA

—SA

Hi,

Try this:

[EDIT]

I've read your comment. So, this is my edit.

I think there's no other option then using a

Hope this helps.

Try this:

C#

string str1="4567995244...4457"; string str2="1458795568...85498"; decimal d1 = Convert.ToDecimal(str1); decimal d2 = Convert.ToDecimal(str2); decimal addition = d1+d2; // addition decimal difference = d1-d2; // difference decimal multiplication = d1*d2; // multiplication decimal division = d1/d2; // division

[EDIT]

I've read your comment. So, this is my edit.

Orhss wrote:note: we dont use biginteger class also

I think there's no other option then using a

`BigInteger`

. Add a reference to System.Numerics.dll, add C#

`using System.Numerics;`

to the top of your code file, and then use this code:C#

BigInteger b1 = BigInteger.Parse(str1); BigInteger b2 = BigInteger.Parse(str2); BigInteger addition = b1 + b2; BigInteger difference = b1 - b2; BigInteger multiplication = b1 * b2; BigInteger division = b1 / b2;

Hope this helps.

Permalink

Share this answer

v2

Comments

ridoy
29-Dec-12 12:20pm

+5

Thomas Daniels
29-Dec-12 12:21pm

Thank you!

Orhss
29-Dec-12 12:33pm

your solution is true but we should use very long string

ex:

12345678901234567891234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

like this...

thanks

ex:

12345678901234567891234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

like this...

thanks

Thomas Daniels
29-Dec-12 12:49pm

I updated my answer.

Orhss
29-Dec-12 13:25pm

right,but we should not use biginteger class and arithmetic operations

Thomas Daniels
29-Dec-12 13:28pm

Why not?

Orhss
29-Dec-12 13:37pm

our project

Thomas Daniels
29-Dec-12 13:38pm

I don't understand.

Orhss
29-Dec-12 13:38pm

i think so we do with multi arrays

Thomas Daniels
29-Dec-12 13:39pm

So?

Why should you not use BigInteger in your project?

Why should you not use BigInteger in your project?

Sergey Alexandrovich Kryukov
29-Dec-12 21:54pm

Gibberish. Unless you clearly explain why not BigInteger, no one will take is seriously.

—SA

—SA

Orhss
29-Dec-12 13:41pm

using System;

class Program

{

static void Main()

{

string number1 = "12345678978945612378945612378945612378945664563214722155278954";

string number2 = "7894561233214569877896541233214569874563258966558632889625";

string number3 = Add(number1, number2);

Console.WriteLine(number3);

Console.ReadKey();

}

static string Add(string n1, string n2)

{

int len1 = n1.Length;

int len2 = n2.Length;

int max = Math.Max(len1, len2);

int[] ia1 = new int[max];

int[] ia2 = new int[max];

int[] ia3 = new int[max + 1]; // allow for carry forward

for(int i = max - len1; i < max; i++) ia1[i] = n1[i + len1 - max] - 48;

for(int i = max - len2; i < max; i++) ia2[i] = n2[i + len2 - max] - 48;

int sum = 0;

int carry = 0;

for(int i = max - 1; i >= 0; i--)

{

sum = ia1[i] + ia2[i] + carry;

ia3[i + 1] = sum % 10;

carry = sum / 10;

}

if (carry == 1) ia3[0] = 1;

char[] c3 = new char[max + 1];

for(int i = 0; i < max + 1; i++) c3[i] = (char)(ia3[i] + 48);

return new string(c3).TrimStart('0');

}

}

class Program

{

static void Main()

{

string number1 = "12345678978945612378945612378945612378945664563214722155278954";

string number2 = "7894561233214569877896541233214569874563258966558632889625";

string number3 = Add(number1, number2);

Console.WriteLine(number3);

Console.ReadKey();

}

static string Add(string n1, string n2)

{

int len1 = n1.Length;

int len2 = n2.Length;

int max = Math.Max(len1, len2);

int[] ia1 = new int[max];

int[] ia2 = new int[max];

int[] ia3 = new int[max + 1]; // allow for carry forward

for(int i = max - len1; i < max; i++) ia1[i] = n1[i + len1 - max] - 48;

for(int i = max - len2; i < max; i++) ia2[i] = n2[i + len2 - max] - 48;

int sum = 0;

int carry = 0;

for(int i = max - 1; i >= 0; i--)

{

sum = ia1[i] + ia2[i] + carry;

ia3[i + 1] = sum % 10;

carry = sum / 10;

}

if (carry == 1) ia3[0] = 1;

char[] c3 = new char[max + 1];

for(int i = 0; i < max + 1; i++) c3[i] = (char)(ia3[i] + 48);

return new string(c3).TrimStart('0');

}

}

Orhss
29-Dec-12 13:42pm

like this

but we dont use arithmetic operators

but we dont use arithmetic operators

Orhss
29-Dec-12 13:48pm

im a student our lecturer wants to without biginteger class

Thomas Daniels
29-Dec-12 14:22pm

I understand. In that case, have a look at Solution 3.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject,
20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8
+1 (416) 849-8900

—SA