Advertisement
dddilian

The pyramid of king djoser

Mar 15th, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(base, stageHeight) {
  2.  
  3.     let totalArea = 0;
  4.     let bulkArea = 0;
  5.  
  6.     let stages;
  7.     let lapisLazuliStones = 0;
  8.     let marbleStones = 0;
  9.     let stoneStones = 0;
  10.     let goldStones = 0;
  11.  
  12.     if (base % 2 == 0) {
  13.         goldStones = 4;
  14.     } else {
  15.         goldStones = 1;
  16.     }
  17.  
  18.     if (base % 2 == 0) {
  19.         stages = base / 2;
  20.     } else {
  21.         stages = (base + 1) / 2;
  22.     }
  23.  
  24.     for (let stage = 1; stage <= stages - 1; stage++) { //ще смятаме само до предпоследния етаж, защото последия е златен и в зависимост от това дали основата е четна или не, златото е 1 или 4
  25.  
  26.         if (stage % 5 == 0) { //ако сме на ред, който се дели на 5, отвън има лапис
  27.             totalArea = base * base; // смятаме основата
  28.             bulkArea = (base - 2) * (base - 2); //смятаме колко камък има в основата
  29.             stoneStones += bulkArea;
  30.             lapisLazuliStones += totalArea - bulkArea;
  31.  
  32.         } else { //етаж, на който отвън има мрамор
  33.  
  34.             totalArea = base * base; // смятаме основата
  35.             bulkArea = (base - 2) * (base - 2); //смятаме колко камък има в основата
  36.             stoneStones += bulkArea;
  37.             marbleStones += totalArea - bulkArea;
  38.  
  39.         }
  40.  
  41.         base -= 2;
  42.     }
  43.  
  44.     console.log(`Stone required: ${Math.ceil(stoneStones*stageHeight)}`);
  45.     console.log(`Marble required: ${Math.ceil(marbleStones*stageHeight)}`);
  46.     console.log(`Lapis Lazuli required: ${Math.ceil(lapisLazuliStones*stageHeight)}`);
  47.     console.log(`Gold required: ${Math.ceil(goldStones*stageHeight)}`);
  48.     console.log(`Final pyramid height: ${Math.floor(stages*stageHeight)}`);
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement