Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using std::cout;
  4. using std::cin;
  5. using std::endl;
  6.  
  7. struct node
  8. {
  9. int value;
  10. node *next;
  11. node* prev;
  12. };
  13.  
  14. class List
  15. {
  16. node *tail, *head;
  17.  
  18. public:
  19. List()
  20. {
  21. head = tail = NULL;
  22. }
  23.  
  24. ~List()
  25. {
  26. node *p = head->next, *q = head;
  27. while (p != tail)
  28. {
  29. q->next = p->next;
  30. p->next->prev = p->prev;
  31. delete p;
  32. p = q->next;
  33. }
  34. node *r = head;
  35. head->next = NULL;
  36. delete r;
  37. delete tail;
  38. }
  39.  
  40. void add_tail(double data)
  41. {
  42. node *p = new node;
  43. p->value = data;
  44. if (head)
  45. {
  46. p->next = NULL;
  47. p->prev = tail;
  48. tail->next = p;
  49. }
  50. else
  51. {
  52. head = tail = p;
  53. }
  54. }
  55.  
  56. double sum(int n)
  57. {
  58. int m = n;
  59. node *p = head;
  60. node *q = tail;
  61. double summa = 0.0;
  62. while (m >= n / 2)
  63. {
  64. summa += (p->value*q->value);
  65. p = p->next;
  66. q = q->next;
  67. m--;
  68. }
  69. return (summa * 2);
  70.  
  71. }
  72. };
  73.  
  74. int main()
  75. {
  76. setlocale(LC_ALL, "Russian");
  77. int n = 0;
  78. double x;
  79. List list;
  80. while (cin >> x)
  81. {
  82. list.add_tail(x);
  83. n++;
  84. }
  85. if (n % 2 != 0) cout << "Error" << endl;
  86. else
  87. {
  88. cout << list.sum(n);
  89. }
  90. system("pause");
  91. return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement