commit 5369608e118f8df35e2df1ebddd64edde4933d7b
parent be3e8b40603de0093837f155876d1ee61b9790d1
Author: Amit Dutta <mail@amit.is-a.dev>
Date: Sat, 1 Aug 2026 21:41:34 +0530
Merge pull request #20 from notamitgamer/edit-20260801-214105
practice
Diffstat:
2 files changed, 165 insertions(+), 0 deletions(-)
diff --git a/md.py b/md.py
@@ -369,6 +369,7 @@ def build_md(filename, lang_label, fence_lang, author, date, repo, license_str,
"::: info Printing the code",
"To print this file, open it on GitHub and click **Raw** before printing, or use the **Download Raw** button above and print directly from that page.",
":::",
+ "---",
"",
]
diff --git a/semester_2/tuition/apc_003.cpp b/semester_2/tuition/apc_003.cpp
@@ -0,0 +1,163 @@
+/*
+ * Author: Amit Dutta <amitdutta4255@gmail.com> | Date: 01 Aug 2026
+ * Repo: https://github.com/notamitgamer/bsc
+ * License: MIT
+ */
+
+/* Write a C++ program to add two polynomial equations and display the resultant polynomial. */
+
+#include<iostream>
+using namespace std;
+
+typedef struct Node {
+ double coeff;
+ int expo;
+ Node *next;
+} node;
+
+class mains {
+private:
+node *head1 = nullptr, *head2 = nullptr, *rear = nullptr;
+public:
+ void input() {
+ int n1;
+ cout << "Enter the degree of first polynomial equation: ";
+ cin >> n1;
+ for(int i = 0; i <= n1; i++) {
+ node *newNode = new node;
+ cout << "Enter the coefficient for n^" << i << ": ";
+ cin >> newNode -> coeff;
+ newNode -> expo = i;
+ newNode -> next = nullptr;
+
+ if(head1 == nullptr) {
+ head1 = newNode;
+ rear = newNode;
+ } else {
+ rear -> next = newNode;
+ rear = newNode;
+ }
+ }
+ cout << "You entered: ";
+ display(head1);
+ cout << endl;
+
+ int n2;
+ cout << "\nEnter the degree of second polynomial equation: ";
+ cin >> n2;
+ for(int i = 0; i <= n2; i++) {
+ node *newNode = new node;
+ cout << "Enter the coefficient for n^" << i << ": ";
+ cin >> newNode -> coeff;
+ newNode -> expo = i;
+ newNode -> next = nullptr;
+
+ if(head2 == nullptr) {
+ head2 = newNode;
+ rear = newNode;
+ } else {
+ rear -> next = newNode;
+ rear = newNode;
+ }
+ }
+ cout << "You entered: ";
+ display(head2);
+ cout << endl;
+ }
+
+ void display(node *head) {
+ node *temp = head;
+ bool first = true;
+ bool second = true;
+ while(temp != nullptr) {
+ if(first) {
+ cout << temp -> coeff;
+ first = false;
+ temp = temp -> next;
+ }
+ if(second) {
+ if(temp -> coeff >= 0)
+ cout << " + " << temp -> coeff << "x";
+ else
+ cout << " - " << (-temp -> coeff) << "x";
+ second = false;
+ } else {
+ if(temp -> coeff >= 0)
+ cout << " + " << temp -> coeff << "x^" << temp -> expo;
+ else
+ cout << " - " << (-temp -> coeff) << "x^" << temp -> expo;
+ }
+ temp = temp -> next;
+ }
+ }
+
+ void calc() {
+ node *head = nullptr, *temp1 = head1, *temp2 = head2, *rear = nullptr;
+ while(temp1 != nullptr && temp2 != nullptr) {
+ node *newNode = new node;
+ newNode -> coeff = (temp1 -> coeff + temp2 -> coeff);
+ newNode -> expo = temp1 -> expo;
+ newNode -> next = nullptr;
+
+ if(head == nullptr) {
+ head = newNode;
+ rear = newNode;
+ } else {
+ rear -> next = newNode;
+ rear = newNode;
+ }
+
+ temp1 = temp1 -> next;
+ temp2 = temp2 -> next;
+ }
+
+ while(temp1 != nullptr) {
+ node *newNode = new node;
+ newNode -> coeff = temp1 -> coeff;
+ newNode -> expo = temp1 -> expo;
+ newNode -> next = nullptr;
+
+ rear -> next = newNode;
+ rear = newNode;
+
+ temp1 = temp1 -> next;
+ }
+
+ while(temp2 != nullptr) {
+ node *newNode = new node;
+ newNode -> coeff = temp2 -> coeff;
+ newNode -> expo = temp2 -> expo;
+ newNode -> next = nullptr;
+
+ rear -> next = newNode;
+ rear = newNode;
+
+ temp2 = temp2 -> next;
+ }
+
+ cout << "\nSum: ";
+ display(head);
+ freeList(head);
+ }
+
+ void freeList(node *head) {
+ node *temp;
+ while(head != nullptr) {
+ temp = head;
+ head = head -> next;
+ delete temp;
+ }
+ }
+ void doAll() {
+ input();
+ calc();
+ freeList(head1);
+ freeList(head2);
+ }
+};
+
+int main() {
+ mains obj;
+ obj.doAll();
+ return 0;
+}+
\ No newline at end of file