Haskell - Càlculs (2) P68540


Statement
 

pdf   zip

html

Aquests problemes es troben inspirats en alguns dels problemes de Project Euler que podeu trobar a https://projecteuler.net.

  1. La suma dels quadrats dels primers 10 naturals és 12+22+…+102=385. El quadrat de la suma dels primers 10 naturals és (1+2+…+10)2=552=3025. Per tant, la diferència entre la suma dels quadrats dels primers 10 naturals i el quadrat de la suma dels primers 10 naturals és 3025 − 385 = 2640.

    Feu una funció diffSqrs :: Integer -> Integer que, donat un natural n, retorni la suma dels quadrats dels primers n naturals i el quadrat de la suma dels primers n naturals.

  2. Una tripleta pitagòrica són tres naturals (a,b,c) tals que a2+b2=c2. Feu una funció pythagoreanTriplets :: Int -> [(Int, Int, Int)] que, donat un natural n≥1, retorni la llista de totes les tripletes pitagòriques que sumin n. Cada tripleta ha d’estar ordenada de forma que abc i la llista ha de estar ordenada respecte la a.
  3. Feu una funció tartaglia :: [[Integer]] que retorni una llista infinita amb les files de del triangle de Tartaglia (també anomenat triangle de Pascal).
  4. Feu una funció sumDigits :: Integer -> Integer que retorni la suma dels dígits d’un natural. Utilitzeu funcions d’ordre superior enlloc de recursivitat.
  5. Feu una funció digitalRoot :: Integer -> Integer que retorni l’arrel digital d’un natural. Utilitzeu funcions d’ordre superior enlloc de recursivitat.

Puntuació

Cada funció puntua 20 punts.

Public test cases
  • Input

    diffSqrs 10
    map pythagoreanTriplets [3,12,84]
    take 5 tartaglia
    sumDigits 32768
    digitalRoot 65536
    

    Output

    2640
    [[],[(3,4,5)],[(12,35,37),(21,28,35)]]
    [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
    26
    7
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Other languages
    English
    Official solutions
    Haskell
    User solutions
    Haskell