namespace Habib_OLA4
{
internal class Program
{
private int[] digits;
public int Length { get; private set; }
public BigNumber(string input)
{
char[] charArray = input.ToCharArray();
Length = charArray.Length;
digits = new int[Length];
for (int i = 0; i < Length; i++)
{
digits[i] = int.Parse(charArray[i].ToString());
}
}
public override string ToString()
{
string result = "";
for (int i = 0; i < Length; i++)
{
result += digits[i];
}
return result;
}
public BigNumber Add(BigNumber b)
{
int maxLength = Math.Max(Length, b.Length);
int[] resultDigits = new int[maxLength];
for (int i = 0; i < maxLength; i++)
{
int sum = 0;
if (i < Length)
sum += digits[i];
if (i < b.Length)
sum += b.digits[i];
resultDigits[i] = sum;
}
BigNumber result = new BigNumber(string.Join("", resultDigits));
return result;
}
public BigNumber Subtract(BigNumber b)
{
int maxLength = Math.Max(Length, b.Length);
int[] resultDigits = new int[maxLength];
for (int i = 0; i < maxLength; i++)
{
int difference = 0;
if (i < Length)
difference += digits[i];
if (i < b.Length)
difference -= b.digits[i];
resultDigits[i] = difference;
}
BigNumber result = new BigNumber(string.Join("", resultDigits));
return result;
}
public bool IsZero()
{
for (int i = 0; i < Length; i++)
{
if (digits[i] != 0)
return false;
}
return true;
}
public bool IsEqualTo(BigNumber b)
{
if (Length != b.Length)
return false;
for (int i = 0; i < Length; i++)
{
if (digits[i] != b.digits[i])
return false;
}
return true;
}
public bool IsNotEqualTo(BigNumber b)
{
if (Length != b.Length)
return true;
for (int i = 0; i < Length; i++)
{
if (digits[i] != b.digits[i])
return true;
}
return false;
}
public bool IsGreaterThan(BigNumber b)
{
if (Length > b.Length)
return true;
else if (Length < b.Length)
return false;
else
{
for (int i = 0; i < Length; i++)
{
if (digits[i] > b.digits[i])
return true;
else if (digits[i] < b.digits[i])
return false;
}
return false;
}
}
public bool IsLessThan(BigNumber b)
{
if (Length > b.Length)
return false;
else if (Length < b.Length)
return true;
else
{
for (int i = 0; i < Length; i++)
{
if (digits[i] > b.digits[i])
return false;
else if (digits[i] < b.digits[i])
return true;
}
return false;
}
}
public bool IsGreaterThanOrEqualTo(BigNumber b)
{
if (Length > b.Length)
return true;
else if (Length < b.Length)
return false;
else
{
for (int i = 0; i < Length; i++)
{
if (digits[i] > b.digits[i])
return true;
else if (digits[i] < b.digits[i])
return false;
}
return true;
}
}
public bool IsLessThanOrEqualTo(BigNumber b)
{
if (Length > b.Length)
return false;
else if (Length < b.Length)
return true;
else
{
for (int i = 0; i < Length; i++)
{
if (digits[i] > b.digits[i])
return false;
else if (digits[i] < b.digits[i])
return true;
}
return true;
}
}
public static void Main(string[] args)
{
BigNumber integer1 = new BigNumber();
BigNumber integer2 = new BigNumber();
Console.Write("Enter first BigNumber: ");
integer1.Input(Console.ReadLine());
Console.Write("Enter second BigNumber: ");
integer2.Input(Console.
namespace Habib_OLA4 { internal class Program { .pdf
1. namespace Habib_OLA4
{
internal class Program
{
private int[] digits;
public BigNumber()
{
digits = new int[40];
}
public void Input(string input)
{
int startIndex = 0;
bool isNegative = false;
if (input[0] == '-')
{
isNegative = true;
startIndex = 1;
}
for (int i = 0; i < digits.Length; i++)
{
digits[i] = 0;
}
for (int i = startIndex; i < input.Length; i++)
{
digits[digits.Length - input.Length + i] = input[i] - '0';
}
if (isNegative)
{
Negate();
}
}
public override string ToString()
{
int startIndex = 0;
while (startIndex < digits.Length - 1 && digits[startIndex] == 0)
2. {
startIndex++;
}
if (digits[startIndex] < 0)
{
return "-" + new BigNumber(digits).ToString();
}
char[] chars = new char[digits.Length - startIndex];
for (int i = 0; i < chars.Length; i++)
{
chars[i] = (char)(digits[startIndex + i] + '0');
}
return new string(chars);
}
public BigNumber Add(BigNumber other)
{
BigNumber result = new BigNumber();
int carry = 0;
for (int i = digits.Length - 1; i >= 0; i--)
{
int sum = digits[i] + other.digits[i] + carry;
result.digits[i] = sum % 10;
carry = sum / 10;
}
return result;
}
public BigNumber Subtract(BigNumber other)
{
BigNumber result = new BigNumber();
int borrow = 0;
for (int i = digits.Length - 1; i >= 0; i--)
{
int difference = digits[i] - other.digits[i] - borrow;
if (difference < 0)
{
difference += 10;
3. borrow = 1;
}
else
{
borrow = 0;
}
result.digits[i] = difference;
}
return result;
}
public bool IsEqualTo(BigNumber other)
{
for (int i = 0; i < digits.Length; i++)
{
if (digits[i] != other.digits[i])
{
return false;
}
}
return true;
}
public bool IsNotEqualTo(BigNumber other)
{
return !IsEqualTo(other);
}
public bool IsGreaterThan(BigNumber other)
{
for (int i = 0; i < digits.Length; i++)
{
if (digits[i] > other.digits[i])
{
return true;
}
else if (digits[i] < other.digits[i])
{
return false;
4. }
}
return false;
}
public bool IsLessThan(BigNumber other)
{
for (int i = 0; i < digits.Length; i++)
{
if (digits[i] < other.digits[i])
{
return true;
}
else if (digits[i] > other.digits[i])
{
return false;
}
}
return false;
}
public bool IsGreaterThanOrEqualTo(BigNumber other)
{
for (int i = 0; i > digits.Length; i++)
{
if (digits[i] > other.digits[i])
{
return true;
}
else if (digits[i] < other.digits[i])
{
return false;
}
}
return false;
}
public static void Main(string[] args)
{
5. BigNumber integer1 = new BigNumber();
BigNumber integer2 = new BigNumber();
Console.Write("Enter first BigNumber: ");
integer1.Input(Console.ReadLine());
Console.Write("Enter second BigNumber: ");
integer2.Input(Console.ReadLine());
Console.WriteLine($"BigNumber 1: {integer1}");
Console.WriteLine($"BigNumber 2: {integer2}");
BigNumber result;
// add two BigNumbers
result = integer1.Add(integer2);
Console.WriteLine($"Add result: {result}");
// subtract two BigNumbers
result = integer1.Subtract(integer2);
Console.WriteLine($"Subtract result: {result}");
// compare two BigNumbers
Console.WriteLine($"BigNumber 1 is zero: {integer1.IsZero()}");
Console.WriteLine($"BigNumber 2 is zero: {integer2.IsZero()}");
Console.WriteLine($"BigNumber 1 is equal to BigNumber 2:
{integer1.IsEqualTo(integer2)}");
Console.WriteLine($"BigNumber 1 is not equal to BigNumber 2:
{integer1.IsNotEqualTo(integer2)}");
Console.WriteLine($"BigNumber 1 is greater than BigNumber 2:
{integer1.IsGreaterThan(integer2)}");
Console.WriteLine($"BigNumber 1 is less than BigNumber 2:
{integer1.IsLessThan(integer2)}");
Console.WriteLine($"BigNumber 1 is greater than or equal to BigNumber 2:
{integer1.IsGreaterThanOrEqualTo(integer2)}");
Console.WriteLine($"BigNumber 1 is less than or equal to BigNumber 2:
{integer1.IsLessThanOrEqualTo(integer2)}");
}
}
}
I have an error.
6. //This what the output support to look like
Sample Run 1:
Enter first BigNumber: 1234567890123456789012345678901234567890
Enter second BigNumber: 0987654321098765432109876543210987654321
BigNumber 1: 1234567890123456789012345678901234567890
BigNumber 2: 987654321098765432109876543210987654321
Add result: 2222222211222222221122222222112222222211
Subtract result: 246913569024691356902469135690246913569
BigNumber 1 is zero: False
BigNumber 2 is zero: False
BigNumber 1 is equal to BigNumber 2: False
BigNumber 1 is not equal to BigNumber 2: True
BigNumber 1 is greater than BigNumber 2: True
BigNumber 1 is less than BigNumber 2: False
BigNumber 1 is greater than or equal to BigNumber 2: True
BigNumber 1 is less than or equal to BigNumber 2: False
Press any key to continue . . .
Can you help me with the c# program?