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 <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <cmath>
|
||||||
|
#include <vector>
|
||||||
#include "../headers/MyType.h"
|
#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)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -16,9 +18,98 @@ int main(int argc, char **argv)
|
|||||||
MyType mj(std::move(j));
|
MyType mj(std::move(j));
|
||||||
MyType maj("jj", 69);
|
MyType maj("jj", 69);
|
||||||
maj = std::move(cj);
|
maj = std::move(cj);
|
||||||
if(argc == 4)
|
std::cout << calculate(argc, argv) << '\n';
|
||||||
{
|
double x = 0;
|
||||||
calculate(argv);
|
double y = 0;
|
||||||
}
|
pol2cart(0.5, 0, x, y);
|
||||||
|
std::cout << x << " " << y << '\n';
|
||||||
|
pascal(argc, argv);
|
||||||
return 0;
|
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