Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new DSA problem on factorial #378

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
262 changes: 131 additions & 131 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,132 +1,132 @@
const express = require('express');
const mongoose = require('mongoose');
const bcrypt = require('bcrypt');
const cors = require('cors');
// Import required modules
// Create an Express app
const app = express();
// Enable CORS
app.use(express.json());
app.use(cors());
// Connect to MongoDB
mongoose.connect('mongodb://localhost:27017/cafe', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Connected to MongoDB');
})
.catch((error) => {
console.error('Error connecting to MongoDB:', error);
});
// Define a user schema
const userSchema = new mongoose.Schema({
username: { type: String, required: true },
password: { type: String, required: true }
});
// Define a user model
const User = mongoose.model('User', userSchema);
const productSchema = new mongoose.Schema({
name: { type: String, required: true },
price: { type: Number, required: true },
quantity: { type: Number, required: true }
});
const Product = mongoose.model('Product', productSchema);
// Register a new user
app.post('/register', async (req, res) => {
try {
const { username, password } = req.body;
// Check if the username already exists
const existingUser = await User.findOne({ username });
if (existingUser) {
return res.status(400).json({ message: 'Username already exists' });
}
// Hash the password
const hashedPassword = await bcrypt.hash(password, 10);
// Create a new user
const newUser = new User({ username, password: hashedPassword });
await newUser.save();
res.status(201).json({ message: 'User registered successfully' });
} catch (error) {
console.error('Error registering user:', error);
res.status(500).json({ message: 'Internal server error' });
}
});
// User login
app.post('/login', async (req, res) => {
try {
const { username, password } = req.body;
// Find the user by username
const user = await User.findOne({ username });
if (!user) {
return res.status(404).json({ message: 'User not found' });
}
// Compare the password
const isPasswordValid = await bcrypt.compare(password, user.password);
if (!isPasswordValid) {
return res.status(401).json({ message: 'Invalid password' });
}
res.status(200).json({ message: 'Login successful' });
} catch (error) {
console.error('Error logging in:', error);
res.status(500).json({ message: 'Internal server error' });
}
});
app.get('/products',async (req,res)=>{
try{
const products = await Product.find();
res.status(200).json(products);
}catch(error){
console.error('Error getting products:',error);
res.status(500).json({message:'Internal server error'});
}
})
app.post('/products',async (req,res)=>{
try{
const {name,price,quantity} = req.body;
const newProduct = new Product({name,price,quantity});
await newProduct.save();
res.status(201).json({message:'Product added successfully'});
}catch(error){
console.error('Error adding product:',error);
res.status(500).json({message:'Internal server error'});
}
})
app.put('/products/:id',async (req,res)=>{
try{
const {name,price,quantity} = req.body;
await Product.findByIdAndUpdate(req.params.id,{name,price,quantity});
res.status(200).json({message:'Product updated successfully'});
}catch(error){
console.error('Error updating product:',error);
res.status(500).json({message:'Internal server error'});
}
})
app.delete('/products/:id',async (req,res)=>{
try{
await Product.findByIdAndDelete(req.params.id);
res.status(200).json({message:'Product deleted successfully'});
}catch(error){
console.error('Error deleting product:',error);
res.status(500).json({message:'Internal server error'});
}
})
// Start the server
app.listen(3000, () => {
console.log('Server started on port 3000');
const express = require('express');
const mongoose = require('mongoose');
const bcrypt = require('bcrypt');
const cors = require('cors');

// Import required modules

// Create an Express app
const app = express();

// Enable CORS
app.use(express.json());
app.use(cors());

// Connect to MongoDB
mongoose.connect('mongodb://localhost:27017/cafe', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Connected to MongoDB');
})
.catch((error) => {
console.error('Error connecting to MongoDB:', error);
});

// Define a user schema
const userSchema = new mongoose.Schema({
username: { type: String, required: true },
password: { type: String, required: true }
});

// Define a user model
const User = mongoose.model('User', userSchema);
const productSchema = new mongoose.Schema({
name: { type: String, required: true },
price: { type: Number, required: true },
quantity: { type: Number, required: true }
});
const Product = mongoose.model('Product', productSchema);
// Register a new user
app.post('/register', async (req, res) => {
try {
const { username, password } = req.body;

// Check if the username already exists
const existingUser = await User.findOne({ username });
if (existingUser) {
return res.status(400).json({ message: 'Username already exists' });
}

// Hash the password
const hashedPassword = await bcrypt.hash(password, 10);

// Create a new user
const newUser = new User({ username, password: hashedPassword });
await newUser.save();

res.status(201).json({ message: 'User registered successfully' });
} catch (error) {
console.error('Error registering user:', error);
res.status(500).json({ message: 'Internal server error' });
}
});

// User login
app.post('/login', async (req, res) => {
try {
const { username, password } = req.body;

// Find the user by username
const user = await User.findOne({ username });
if (!user) {
return res.status(404).json({ message: 'User not found' });
}

// Compare the password
const isPasswordValid = await bcrypt.compare(password, user.password);
if (!isPasswordValid) {
return res.status(401).json({ message: 'Invalid password' });
}

res.status(200).json({ message: 'Login successful' });
} catch (error) {
console.error('Error logging in:', error);
res.status(500).json({ message: 'Internal server error' });
}
});

app.get('/products',async (req,res)=>{
try{
const products = await Product.find();
res.status(200).json(products);
}catch(error){
console.error('Error getting products:',error);
res.status(500).json({message:'Internal server error'});
}
})

app.post('/products',async (req,res)=>{
try{
const {name,price,quantity} = req.body;
const newProduct = new Product({name,price,quantity});
await newProduct.save();
res.status(201).json({message:'Product added successfully'});
}catch(error){
console.error('Error adding product:',error);
res.status(500).json({message:'Internal server error'});
}
})

app.put('/products/:id',async (req,res)=>{
try{
const {name,price,quantity} = req.body;
await Product.findByIdAndUpdate(req.params.id,{name,price,quantity});
res.status(200).json({message:'Product updated successfully'});
}catch(error){
console.error('Error updating product:',error);
res.status(500).json({message:'Internal server error'});
}
})

app.delete('/products/:id',async (req,res)=>{
try{
await Product.findByIdAndDelete(req.params.id);
res.status(200).json({message:'Product deleted successfully'});
}catch(error){
console.error('Error deleting product:',error);
res.status(500).json({message:'Internal server error'});
}
})
// Start the server
app.listen(3000, () => {
console.log('Server started on port 3000');
});
17 changes: 17 additions & 0 deletions factorial using recursion.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include <bits/stdc++.h>
using namespace std;

void fact(int n,int ans){
if(n<1){
cout<<ans<<endl;
return;
}
fact(n-1,ans*n);
}

int main(){
int n;
cin>>n;
int ans=1;
fact(n,ans);
}
Binary file added factorial using recursion.exe
Binary file not shown.