Ejemplo n.º 1
0
        } //отрицание не влияет тк если один отр, то это отрицание будет, если 2 то сложение

        public static string operator -(Cloud x1, Cloud x2)
        {
            if (x1.digits.Count > x2.digits.Count)
            {
                int   temp   = 0;
                Cloud result = new Cloud("");
                //List<int> tempest = new List<int>();
                for (int i = 0; i < x1.digits.Count; i++)
                {
                    if (x2.digits.Count - 1 >= i)
                    {
                        if ((x1.digits[i] - x2.digits[i]).ToString().Length < 0)
                        {
                            if (temp == 1)
                            {
                                result.digits.Add(1000000000 - (x1.digits[i] - x2.digits[i]) - temp);
                                temp = 0;
                            }
                            else
                            {
                                result.digits.Add(1000000000 - (x1.digits[i] - x2.digits[i]));
                            }
                            temp = 1;
                        }
                        else
                        {
                            if (temp == 1)
                            {
                                result.digits.Add((x1.digits[i] - x2.digits[i]) - temp);
                                temp = 0;
                            }
                            else
                            {
                                result.digits.Add(x1.digits[i] - x2.digits[i]);
                            }
                        }
                    }
                }
                return(result.Display());
            }
            else if (x1.digits.Count < x2.digits.Count)
            {
                int   temp   = 0;
                Cloud result = new Cloud("");
                //List<int> tempest = new List<int>();
                for (int i = 0; i < x2.digits.Count; i++)
                {
                    if (x1.digits.Count - 1 >= i)
                    {
                        if ((x1.digits[i] + x2.digits[i]).ToString().Length > x1.digits[i].ToString().Length)
                        {
                            if (temp == 1)
                            {
                                result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                                temp = 0;
                            }
                            else
                            {
                                result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)));
                            }
                            temp = 1;
                        }
                        else
                        {
                            if (temp == 1)
                            {
                                result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                            }
                            else
                            {
                                result.digits.Add(x1.digits[i] + x2.digits[i]);
                            }
                        }
                    }
                }
                return(result.Display());
            }
            else
            {
                int   temp   = 0;
                Cloud result = new Cloud("");
                //List<int> tempest = new List<int>();
                for (int i = 0; i < x1.digits.Count; i++)
                {
                    if ((x1.digits[i] + x2.digits[i]).ToString().Length > x1.digits[i].ToString().Length)
                    {
                        if (temp == 1)
                        {
                            result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                            temp = 0;
                        }
                        else
                        {
                            result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)));
                        }
                        temp = 1;
                    }
                    else
                    {
                        if (temp == 1)
                        {
                            result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                        }
                        else
                        {
                            result.digits.Add(x1.digits[i] + x2.digits[i]);
                        }
                    }
                }
                return(result.Display());
            }
        }
Ejemplo n.º 2
0
 public static string operator +(Cloud x1, Cloud x2)
 {
     if (x1.digits.Count > x2.digits.Count)
     {
         int   temp   = 0;
         Cloud result = new Cloud("");
         //List<int> tempest = new List<int>();
         for (int i = 0; i < x1.digits.Count; i++)
         {
             if (x2.digits.Count - 1 >= i)
             {
                 if ((x1.digits[i] + x2.digits[i]).ToString().Length > x1.digits[i].ToString().Length)
                 {
                     if (temp == 1)
                     {
                         result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                         temp = 0;
                     }
                     else
                     {
                         result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)));
                     }
                     temp = 1;
                 }
                 else
                 {
                     if (temp == 1)
                     {
                         result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                         temp = 0;
                     }
                     else
                     {
                         result.digits.Add(x1.digits[i] + x2.digits[i]);
                     }
                 }
             }
         }
         return(result.Display());
     }
     else if (x1.digits.Count < x2.digits.Count)
     {
         int   temp   = 0;
         Cloud result = new Cloud("");
         //List<int> tempest = new List<int>();
         for (int i = 0; i < x2.digits.Count; i++)
         {
             if (x1.digits.Count - 1 >= i)
             {
                 if ((x1.digits[i] + x2.digits[i]).ToString().Length > x1.digits[i].ToString().Length)
                 {
                     if (temp == 1)
                     {
                         result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                         temp = 0;
                     }
                     else
                     {
                         result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)));
                     }
                     temp = 1;
                 }
                 else
                 {
                     if (temp == 1)
                     {
                         result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                     }
                     else
                     {
                         result.digits.Add(x1.digits[i] + x2.digits[i]);
                     }
                 }
             }
         }
         return(result.Display());
     }
     else
     {
         int   temp   = 0;
         Cloud result = new Cloud("");
         //List<int> tempest = new List<int>();
         for (int i = 0; i < x1.digits.Count; i++)
         {
             if ((x1.digits[i] + x2.digits[i]).ToString().Length > x1.digits[i].ToString().Length)
             {
                 if (temp == 1)
                 {
                     result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                     temp = 0;
                 }
                 else
                 {
                     result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)));
                 }
                 temp = 1;
             }
             else
             {
                 if (temp == 1)
                 {
                     result.digits.Add(int.Parse((x1.digits[i] + x2.digits[i]).ToString().Substring(1)) + 1);
                 }
                 else
                 {
                     result.digits.Add(x1.digits[i] + x2.digits[i]);
                 }
             }
         }
         return(result.Display());
     }
 } //отрицание не влияет тк если один отр, то это отрицание будет, если 2 то сложение