Advertisement
mikolajmki

swift_lab05

Nov 7th, 2022
638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.40 KB | None | 0 0
  1. //
  2. //  main.swift
  3. //  lab05
  4. //
  5. //  Created by student on 07/11/2022.
  6. //
  7.  
  8. import Foundation
  9.  
  10. func fibonacci(n: Int) -> Int {
  11.     var i:Int = 0;
  12.     var v: Int = 1;
  13.     var h1: Int = 0;
  14.     var h2: Int = 0;
  15.    
  16.     while (i < n) {
  17.         if (i == 0 || i == 1) {
  18.             h1 = 1;
  19.             h2 = 1;
  20.         } else {
  21.             h2 = h1;
  22.             h1 = v;
  23.             v = h1 + h2;
  24.         }
  25.         i += 1
  26.     }
  27.     return v;
  28. }
  29.  
  30. func prime() {
  31.     print("Podaj liczbe: ")
  32.     guard let n = Float(readLine()!) else {
  33.             fatalError("Not a number!")
  34.         }
  35.    
  36.     var i: Int = 1;
  37.     var divCount: Int = 0;
  38.    
  39.     while (i < Int(pow(n, 1/2))) {
  40.         if (Int(n) % i == 0) {
  41.             divCount += 1;
  42.         }
  43.         i += 1;
  44.     }
  45.     print(divCount);
  46.     divCount < 2 ? print("Podana liczba jest liczba pierwsza.") : print("Podana liczba nie jest liczba pierwsza.");
  47.    
  48. }
  49.  
  50. func geoMean() {
  51.     print("Podaj liczbe: ")
  52.     guard var n = Float(readLine()!) else {
  53.             fatalError("Not a number!")
  54.         }
  55.     var result: Double = 0;
  56.     var resultLen: Int = 0;
  57.     var currentDiv: Float = 0;
  58.     var currentNumber: Float = 0;
  59.     var i: Int = 0;
  60.    
  61.     result = Double(n);
  62.     while (result >= 1) {
  63.         result /= 10;
  64.         resultLen += 1;
  65.     }
  66.     result = 1;
  67.     i = resultLen;
  68.     while (i > 0) {
  69.         currentDiv = pow(10, Float(i) - 1);
  70.         currentNumber = floor(n / currentDiv);
  71.         result *= Double(currentNumber);
  72.         print(result);
  73.         n -= currentNumber  * currentDiv;
  74.         print(n);
  75.         i -= 1;
  76.     }
  77.     result = pow(result, 1 / Double(resultLen));
  78.    
  79.     print(result);
  80. }
  81.  
  82. func palindrome() {
  83.     print("Podaj slowo do sprawdzenia: ")
  84.     guard var word = readLine() else {
  85.         fatalError("Not a string!");
  86.     }
  87.     word = word.lowercased();
  88.     var letterCount: Int = 0;
  89.     print(Int(word.count / 2));
  90.    
  91.     while (letterCount <= Int(word.count / 2)) {
  92.         if (word.prefix(letterCount) == word.suffix(letterCount)) {
  93.             letterCount += 1;
  94.             // maybe index remove
  95.             print(word.prefix(letterCount), word.suffix(letterCount))
  96.         } else {
  97.             break;
  98.         }
  99.     }
  100.     letterCount == Int(word.count / 2) ? print("Slowo jest palindromem.") : print("Slowo nie jest palindromem.");
  101. }
  102.  
  103. //prime()
  104. //geoMean();
  105. palindrome();
  106.  
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement