Guest User

Untitled

a guest
Feb 21st, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. _400800|400
  2. 400 |----
  3. --- |1002
  4. _800
  5. 800
  6. ---
  7. 0
  8.  
  9. class Class1
  10. {
  11. public readonly Class1 son;
  12. public readonly string num1;
  13. public readonly string num2;
  14. public readonly int space_num1;
  15. public readonly int space_num2;
  16. public Class1(int dividend, int divider, int space = 0)
  17. {
  18. if (divider <= 0) throw new ArgumentException();
  19.  
  20. num1 = dividend.ToString();
  21. space_num1 = space;
  22. if (divider> dividend)
  23. {
  24. space_num2 = num1.Length-1 + space;
  25. num2 = "0";
  26. }
  27. //код ниже может быть и проще, но пока не вижу как
  28. int res = dividend / divider;
  29. int i = 0;
  30. while (res > 9)
  31. {
  32. res = res / 10;
  33. i++;
  34. }
  35. int delta = res * divider;
  36. num2 = delta.ToString();
  37. space_num2 = space;
  38.  
  39.  
  40. if (i > 0) //остаток все еще больше делителя
  41. {
  42. int newDividend = dividend - delta* MyPow(10,i);
  43. int spaceDelta = num1.Length - newDividend.ToString().Length;
  44. son = new Class1(newDividend, divider, space + spaceDelta);
  45. }
  46. //int space_num2 = num1.Length;
  47.  
  48.  
  49. }
  50.  
  51. static int MyPow(int x, int y)
  52. {
  53. if (y < 1) throw new ArgumentException();
  54.  
  55. int res = 1;
  56. for(int i = 0; i < y; i++)
  57. {
  58. res *= x;
  59. }
  60. return res;
  61. }
  62. }
  63.  
  64. var c = new Class1(400800, 400); //(400800, 400, 1) чтобы удобно вставлять '_'
Add Comment
Please, Sign In to add comment