Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <vector>
- #include <string>
- using namespace std;
- //2.1
- int potega(int podstawa, int wykladnik) {
- if (wykladnik == 0) {
- return 1;
- }
- if (podstawa == 0) {
- return 0;
- }
- return potega(podstawa, wykladnik - 1) * podstawa;
- }
- //2.2
- bool palindrom(string a) {
- if (a.size() == 1 || a.size() == 0) {
- return true;
- }
- if (a[0] == a[a.size() - 1]) {
- string nowy;
- for (int i = 0; i < a.size() - 2; i++) {
- nowy.push_back(a[i + 1]);
- }
- return palindrom(nowy);
- }
- else {
- return false;
- }
- }
- //2.3
- int gwiazdki(int n) {
- if (n == 0) {
- return 0;
- }
- cout << "*";
- return gwiazdki(n - 1);
- }
- //2.4
- int horner(int x, vector<int> tab, int stopien) {
- if (stopien == 0) {
- return tab[0];
- }
- return x * horner(x, tab, stopien - 1) + tab[stopien];
- }
- /*
- //2.5
- int spirala(int dlugosc, int odstep) {
- int ** tab;
- tab = new int*[dlugosc * dlugosc];
- if (dlugosc == odstep) {
- return 1;
- }
- for (int i = 0; i < dlugosc; i++) {
- cout << '8';
- }
- cout << endl;
- return spirala(dlugosc - odstep, odstep);
- }
- */
- //
- int silnia(int n) {
- if (n == 0) {
- return 1;
- }
- return silnia(n - 1)*n;
- }
- //pomocnicze funkcje
- void wypisz(char** tab, int n, int m) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cout << tab[i][j];
- }
- cout << endl;
- }
- }
- void spirala(int dl_max, char ** tab, int wspx, int wspy, int kierunek, int dlugosc, int par)
- {
- //warunek stopu
- if (dlugosc > dl_max)
- {
- return;
- }
- // tab[y][x]
- tab[wspy][wspx] == '*';
- if (kierunek == 1)
- {
- for (int i = 0; i < dlugosc; i++)
- {
- tab[wspy][wspx] = '*';
- wspy++;
- }
- return spirala(dl_max, tab, wspx, wspy, kierunek + 1, dlugosc + par, par);
- }
- if (kierunek == 2)
- {
- for (int i = 0; i < dlugosc; i++)
- {
- tab[wspy][wspx] = '*';
- wspx++;
- }
- return spirala(dl_max, tab, wspx, wspy, kierunek + 1, dlugosc + par, par);
- }
- if (kierunek == 3)
- {
- for (int i = 0; i < dlugosc; i++)
- {
- tab[wspy][wspx] = '*';
- wspy--;
- }
- return spirala(dl_max, tab, wspx, wspy, kierunek + 1, dlugosc + par, par);
- }
- if (kierunek == 4)
- {
- for (int i = 0; i < dlugosc; i++)
- {
- tab[wspy][wspx] = '*';
- wspx--;
- }
- return spirala(dl_max, tab, wspx, wspy, 1, dlugosc + par, par);
- }
- return;
- }
- int main()
- {
- /*
- cout << "Hello World!\n";
- cout << "(2.1) 2 do 5 = " << potega(2, 5) << endl;
- cout << "(2.2) Czy kajak to palindrom? :1 - tak, 0 - nie: " << palindrom("kajak") << endl;
- cout << "(2.3) 5 gwiazdek: ";
- gwiazdki(5);
- cout << endl << "5! = " << silnia(5) << endl;
- vector<int> a(5);
- a = { 5,4,3 };
- cout << "(2.4) horner: dla 5x^2 + 4x +3" << horner(2, a, 2) << endl;
- */
- //spirala(6, 1);
- int dl = 15;
- char ** tab;
- int size = 2 * dl;
- tab = new char*[size];
- for (int i = 0; i < size; i++) {
- tab[i] = new char[size];
- }
- for (int i = 0; i < size; i++) {
- for (int j = 0; j <= size; j++) {
- tab[i][j] = '_';
- }
- }
- spirala(dl, tab, (size) / 2, (size) / 2, 1, 1, 2);
- wypisz(tab, size, size);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement