Merge idk
This commit is contained in:
commit
eca93ba44b
4 files changed
+408
No files matched your search
@@ -0,0 +1,165 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
typedef struct Node
|
||||
{
|
||||
int val;
|
||||
struct Node *pNext;
|
||||
|
||||
} Node;
|
||||
|
||||
typedef struct UnBoundedInt
|
||||
{
|
||||
int size;
|
||||
Node *pHead;
|
||||
} UnBoundedInt;
|
||||
|
||||
void init_ubI (UnBoundedInt *I)
|
||||
{
|
||||
I->size = 0;
|
||||
I->pHead = NULL;
|
||||
}
|
||||
|
||||
Node *initNode(int val)
|
||||
{
|
||||
Node *node = (Node *)malloc(sizeof *node);
|
||||
if (node == NULL)
|
||||
exit(0);
|
||||
node->val = val;
|
||||
node->pNext = NULL;
|
||||
return node;
|
||||
}
|
||||
int isEmpty(UnBoundedInt *I)
|
||||
{
|
||||
return (I->size == 0 || I->pHead == NULL);
|
||||
}
|
||||
|
||||
|
||||
void display(UnBoundedInt *I)
|
||||
{
|
||||
if (I->size == 0)
|
||||
{
|
||||
printf("0");
|
||||
return;
|
||||
}
|
||||
|
||||
Node *current = I->pHead;
|
||||
if (current->val == 1)
|
||||
printf("+");
|
||||
else if (current->val == -1)
|
||||
{
|
||||
printf("-");
|
||||
}
|
||||
|
||||
current = current ->pNext;
|
||||
while (current != NULL)
|
||||
{
|
||||
printf("%d",current->val);
|
||||
current = current ->pNext;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
|
||||
void insert_digit(int new_val, Node * pcurr,UnBoundedInt *I)
|
||||
{
|
||||
Node *newNode = initNode(new_val);
|
||||
if (isEmpty(I))
|
||||
{
|
||||
I->pHead = newNode;
|
||||
}else
|
||||
{
|
||||
newNode->pNext = pcurr->pNext;
|
||||
pcurr->pNext = newNode;
|
||||
I->size++;
|
||||
}
|
||||
}
|
||||
|
||||
void insert_d(UnBoundedInt *n,Node *node_before_the_inserting_node,int val)
|
||||
{
|
||||
Node *new = initNode(val);
|
||||
if (n->pHead == NULL){
|
||||
n->pHead = new;
|
||||
}else
|
||||
{
|
||||
new->pNext = node_before_the_inserting_node->pNext;
|
||||
node_before_the_inserting_node->pNext = new;
|
||||
}
|
||||
n->size++;
|
||||
}
|
||||
|
||||
void insert_digit_finale(UnBoundedInt *I, int val, int digit_pos)
|
||||
{
|
||||
Node *new = initNode(val);
|
||||
if (I->pHead == NULL)
|
||||
{
|
||||
I->pHead = new;
|
||||
}else
|
||||
{
|
||||
Node *pcurr = I->pHead;
|
||||
for (int i = 1;i<=digit_pos && pcurr->pNext != NULL;i++)
|
||||
{
|
||||
pcurr = pcurr->pNext;
|
||||
}
|
||||
|
||||
new->pNext = pcurr->pNext;
|
||||
pcurr->pNext = new;
|
||||
}
|
||||
I->size++;
|
||||
display(I);
|
||||
}
|
||||
|
||||
void remove_digit(UnBoundedInt *I, int val)
|
||||
{
|
||||
Node *p = I->pHead;
|
||||
if (p->val == val)
|
||||
{
|
||||
I->pHead = p->pNext;
|
||||
free(p);
|
||||
I->size--;
|
||||
return;
|
||||
}
|
||||
|
||||
Node *q = p->pNext;
|
||||
int cnt = 1;
|
||||
while ((p->val != val) && cnt < I->size)
|
||||
{
|
||||
q = p;
|
||||
p = p->pNext;
|
||||
cnt++;
|
||||
}
|
||||
|
||||
if (p != NULL)
|
||||
{
|
||||
q->pNext = p->pNext;
|
||||
I->size--;
|
||||
free(p);
|
||||
}
|
||||
}
|
||||
|
||||
void Calc_sum(UnBoundedInt *I)
|
||||
{
|
||||
int Sum = 0;
|
||||
Node *current = I->pHead->pNext;
|
||||
|
||||
while (current->pNext != NULL)
|
||||
{ Sum += current->val;
|
||||
current = current->pNext;
|
||||
}
|
||||
Sum += current->val;
|
||||
printf("Sum is: %d",Sum);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
UnBoundedInt *new_num = (UnBoundedInt *)malloc(sizeof(UnBoundedInt));
|
||||
init_ubI(new_num);
|
||||
insert_digit_finale(new_num,1,0);
|
||||
insert_digit_finale(new_num,5,0);
|
||||
insert_digit_finale(new_num,3,1);
|
||||
insert_digit_finale(new_num,7,2);
|
||||
insert_digit_finale(new_num,9,1);
|
||||
Calc_sum(new_num);
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
typedef struct Car
|
||||
{
|
||||
int id;
|
||||
int passengers;
|
||||
struct Car *nextCar;
|
||||
} Kar;
|
||||
|
||||
Kar *initCar(int id,int passengers)
|
||||
{
|
||||
Kar *newCar = (Kar*)malloc(sizeof(Kar));
|
||||
newCar->id = id;
|
||||
newCar->passengers = passengers;
|
||||
newCar->nextCar = NULL;
|
||||
return newCar;
|
||||
}
|
||||
|
||||
typedef struct Train
|
||||
{
|
||||
int length;
|
||||
Kar *headCar;
|
||||
|
||||
} ChooChoo;
|
||||
|
||||
void init_new_train(ChooChoo *T)
|
||||
{
|
||||
T-> length = 0;
|
||||
T -> headCar = NULL;
|
||||
}
|
||||
|
||||
|
||||
int isTrain_without_Car(ChooChoo *T)
|
||||
{
|
||||
return (T->length == 0 || T->headCar == NULL);
|
||||
}
|
||||
|
||||
int addCar(ChooChoo *T,Kar *newCar,int newcarPos)
|
||||
{
|
||||
|
||||
if (isTrain_without_Car(T))
|
||||
{
|
||||
T->headCar = newCar;
|
||||
}else
|
||||
{
|
||||
Kar *currCar = T->headCar;
|
||||
for (int i=0;i<=newcarPos && currCar->nextCar != NULL;i++)
|
||||
{
|
||||
currCar = currCar->nextCar;
|
||||
}
|
||||
|
||||
newCar->nextCar = currCar->nextCar;
|
||||
currCar->nextCar = newCar;
|
||||
}
|
||||
T->length++;
|
||||
}
|
||||
|
||||
void display_all_info(int train_or_car,ChooChoo *T)
|
||||
{
|
||||
if (train_or_car == 0)
|
||||
printf("Train's length is %d \n",T->length);
|
||||
else if (train_or_car == 1)
|
||||
{ Kar *currCar = T->headCar;
|
||||
for (int i=0; i <= T->length && currCar != NULL;i++)
|
||||
{
|
||||
printf("Car with the id of %d has %d passenger(s) is in position: %d \n",currCar->id,currCar->passengers, i);
|
||||
currCar = currCar->nextCar;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PegThisCarOut(int id,ChooChoo *T)
|
||||
{
|
||||
Kar *currCar = T->headCar;
|
||||
if (currCar->id == id)
|
||||
{
|
||||
T->headCar = currCar->nextCar;
|
||||
free(currCar);
|
||||
T->length--;
|
||||
return;
|
||||
}
|
||||
|
||||
Kar *idkCar = currCar;
|
||||
int cnt = 1;
|
||||
while ((currCar->id != id) && cnt < T->length)
|
||||
{
|
||||
idkCar = currCar;
|
||||
currCar = currCar->nextCar;
|
||||
cnt++;
|
||||
}
|
||||
|
||||
if (currCar != NULL)
|
||||
{
|
||||
idkCar->nextCar = currCar->nextCar;
|
||||
T->length--;
|
||||
free(currCar);
|
||||
}
|
||||
}
|
||||
void removePassenger(int id,ChooChoo *T,int passenger_to_remove)
|
||||
{
|
||||
|
||||
if (isTrain_without_Car(T))
|
||||
{ printf("Car not found man");
|
||||
return;
|
||||
}
|
||||
Kar *currCar = T->headCar;
|
||||
while (currCar->nextCar != NULL && currCar->id != id)
|
||||
currCar = currCar->nextCar;
|
||||
|
||||
|
||||
if (currCar->id == id)
|
||||
{ if (currCar->passengers - passenger_to_remove > 0)
|
||||
{
|
||||
currCar->passengers -= passenger_to_remove;
|
||||
printf("Car %d now has %d passengers\n",currCar->id,currCar->passengers);
|
||||
}
|
||||
else
|
||||
PegThisCarOut(currCar->id,T);
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
ChooChoo *newTrain = (ChooChoo*)malloc(sizeof(ChooChoo));
|
||||
init_new_train(newTrain);
|
||||
addCar(newTrain,initCar(109,54),0);
|
||||
addCar(newTrain,initCar(832,26),1);
|
||||
addCar(newTrain,initCar(371,26),2);
|
||||
//display_all_info(0,newTrain);
|
||||
display_all_info(1,newTrain);
|
||||
printf("\n");
|
||||
removePassenger(832,newTrain,11);
|
||||
display_all_info(1,newTrain);
|
||||
printf("\n");
|
||||
removePassenger(371,newTrain,26);
|
||||
display_all_info(1,newTrain);
|
||||
printf("\n");
|
||||
removePassenger(109,newTrain,55);
|
||||
display_all_info(1,newTrain);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
int Getting_each_digit(int n)
|
||||
{
|
||||
int cnt = 0;
|
||||
int sum = 0;
|
||||
while (n%10 != 0)
|
||||
{
|
||||
printf("%d \n",n%10);
|
||||
sum += n%10;
|
||||
n = n/10;
|
||||
}
|
||||
|
||||
printf("Final sum is : %d",sum);
|
||||
//return digits_arr;
|
||||
}
|
||||
|
||||
int Getting_each_digit_Recursively(int n)
|
||||
{
|
||||
if (n%10 == 0)
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
return n%10 + Getting_each_digit_Recursively(n/10);
|
||||
//printf("%d\n",n%10);
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int n = 9512;
|
||||
|
||||
printf("%d",Getting_each_digit_Recursively(n));
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int Check_Prime(int n)
|
||||
{
|
||||
if (n<=1) return 0;
|
||||
for (int i = 2;i<n;i++)
|
||||
{
|
||||
if (n%i == 0)
|
||||
{
|
||||
// printf("%d is Not prime",n);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
//printf("%d is prime",n);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int Check_Sphenic(int n)
|
||||
{
|
||||
int divisors[2];
|
||||
int no = 0;
|
||||
int divisor_counter = 0;
|
||||
for (int i=2;i<n;i++)
|
||||
{
|
||||
if (n%i == 0)
|
||||
{
|
||||
if (Check_Prime(i) == 1)
|
||||
{
|
||||
divisors[divisor_counter] = i;
|
||||
divisor_counter++;
|
||||
}
|
||||
no ++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((no == 6) && divisor_counter == 3)
|
||||
{
|
||||
if (divisors[0] && divisors[1] && divisors[2])
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
int FindAllSphenic(int n)
|
||||
{
|
||||
if (n<30)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Check_Sphenic(n) == 1)
|
||||
{
|
||||
printf("this goofy num (%d) is sphenic\n",n);
|
||||
}
|
||||
FindAllSphenic(n-1);
|
||||
}
|
||||
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int n = 200;
|
||||
FindAllSphenic(n);
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user