idk
This commit is contained in:
parent
c06e72fca1
commit
da64db914e
107
src/sheet03.cpp
107
src/sheet03.cpp
@ -1,11 +1,13 @@
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
#include <vector>
|
||||
#include "../headers/MyType.h"
|
||||
|
||||
int calculate(const char &argv)
|
||||
{
|
||||
|
||||
}
|
||||
double calculate(int argc, char **argv);
|
||||
void pol2cart(double r, double phi, double &x, double &y);
|
||||
void pascal(int argc, char **argv);
|
||||
void pascal_mem(int argc, char **argv);
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
@ -16,9 +18,98 @@ int main(int argc, char **argv)
|
||||
MyType mj(std::move(j));
|
||||
MyType maj("jj", 69);
|
||||
maj = std::move(cj);
|
||||
if(argc == 4)
|
||||
{
|
||||
calculate(argv);
|
||||
}
|
||||
std::cout << calculate(argc, argv) << '\n';
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
pol2cart(0.5, 0, x, y);
|
||||
std::cout << x << " " << y << '\n';
|
||||
pascal(argc, argv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
double calculate(int argc, char **argv)
|
||||
{
|
||||
if(argc != 4)
|
||||
{
|
||||
return std::nan("");
|
||||
}
|
||||
|
||||
switch(argv[2][0])
|
||||
{
|
||||
case '+':
|
||||
return std::stod(argv[1]) + std::stod(argv[3]);
|
||||
case '-':
|
||||
return std::stod(argv[1]) - std::stod(argv[3]);
|
||||
case 'x':
|
||||
return std::stod(argv[1]) * std::stod(argv[3]);
|
||||
case '/':
|
||||
return std::stod(argv[1]) / std::stod(argv[3]);
|
||||
default:
|
||||
std::cout << "Invalid operand: " << argv[2][0] << '\n';
|
||||
return std::nan("");
|
||||
}
|
||||
}
|
||||
|
||||
void pol2cart(double r, double phi, double &x, double &y)
|
||||
{
|
||||
x = r * cos(phi);
|
||||
y = r * sin(phi);
|
||||
}
|
||||
|
||||
void pascal(int argc, char **argv)
|
||||
{
|
||||
if (argc != 2 || std::stol(argv[1]) == 0) { return; }
|
||||
|
||||
unsigned depth = std::stol(argv[1]);
|
||||
|
||||
std::vector<std::vector<unsigned long long>> pascal(depth+1, std::vector<unsigned long long>(depth+1,0));
|
||||
pascal[1][1] = 1;
|
||||
for(unsigned long long y=2; y<depth; ++y)
|
||||
{
|
||||
for(unsigned long long x=2; x<=depth; ++x)
|
||||
{
|
||||
pascal[y][x] = pascal[y-1][x-1] + pascal[y-1][x];
|
||||
if(pascal[y][x]!=0)
|
||||
{
|
||||
std::cout << pascal[y][x] << '\t';
|
||||
}
|
||||
}
|
||||
std::cout<< '\n';
|
||||
}
|
||||
}
|
||||
unsigned fibonacci_nonrec(unsigned n)
|
||||
{
|
||||
unsigned fibo = 0;
|
||||
unsigned prev_fibo = 1;
|
||||
unsigned prev_prev_fibo = 0;
|
||||
|
||||
for(int i=2; i<=n; ++i)
|
||||
{
|
||||
fibo = prev_fibo + prev_prev_fibo;
|
||||
prev_prev_fibo = prev_fibo;
|
||||
prev_fibo = fibo;
|
||||
}
|
||||
|
||||
return fibo;
|
||||
}
|
||||
void pascal_mem(int argc, char **argv)
|
||||
{
|
||||
|
||||
if (argc != 2 || std::stol(argv[1]) == 0) { return; }
|
||||
|
||||
unsigned depth = std::stol(argv[1]);
|
||||
depth = (depth*depth-depth)/2;
|
||||
std::vector<unsigned long long> pascal(depth,0);
|
||||
pascal[0] = 1;
|
||||
for(unsigned long long i=1; i<depth; i=(i*i-i)/2)
|
||||
{
|
||||
for(unsigned long long j=1; j<=i;++j)
|
||||
{
|
||||
|
||||
}
|
||||
pascal[i] = pascal[i-1];
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user