Lektion 3: lösningsförslag

  1. // 1
  2. int max = ...;
  3. int sum = 0;
  4. for (int i = 1; i <= max; i += 1)
  5. {
  6. sum += i;
  7. }
  8. // 1.1
  9. int max = ...;
  10. int sum = 0;
  11. for (int i = 2; i <= max; i += 2)
  12. {
  13. sum += i;
  14. }
  15. // 1.2
  16. int max = ...;
  17. int sum = (max * (max + 1)) / 2;
  18. // 2
  19. int max = ...;
  20. string countdown = "";
  21. for (int i = max; i >= 0; i -= 1) {
  22. countdown += i + ", ";
  23. }
  24. countdown += "go!";
  25. // 3
  26. string result = "";
  27. for (int i = 1; i <= 100; i += 1)
  28. {
  29. if (i % 3 == 0)
  30. {
  31. result += "Fizz";
  32. }
  33. if (i % 5 == 0)
  34. {
  35. result += "Buzz";
  36. }
  37. if (i % 3 != 0 && i % 5 != 0)
  38. {
  39. result += i;
  40. }
  41. if (i < 100)
  42. {
  43. result += ", ";
  44. }
  45. }
  46. // 4
  47. string rolls = "";
  48. for (int i = 1; i <= 6; i += 1)
  49. {
  50. for (int j = 1; j <= 6; j += 1)
  51. {
  52. rolls += "(" + i + ", " + j + ")";
  53. if (i < 6 || j < 6)
  54. {
  55. rolls += ", ";
  56. }
  57. }
  58. }
  59. // 4.1
  60. // If-sats som kontrollerar loopvariablernas värden, som ovan.
  61. // 4.2
  62. int limit = ...;
  63. string rolls = "";
  64. for (int i = 1; i <= 6; i += 1)
  65. {
  66. for (int j = 1; j <= 6; j += 1)
  67. {
  68. if (i + j >= limit)
  69. {
  70. rolls += "(" + i + ", " + j + ")";
  71. if (i < 6 || j < 6)
  72. {
  73. rolls += ", ";
  74. }
  75. }
  76. }
  77. }
  78. // 4.3
  79. string rolls = "";
  80. for (int i = 1; i <= 6; i += 1)
  81. {
  82. for (int j = 1; j <= 8; j += 1)
  83. {
  84. rolls += "(" + i + ", " + j + ")";
  85. if (i < 6 || j < 8)
  86. {
  87. rolls += ", ";
  88. }
  89. }
  90. }
  91. // 4.4
  92. // Lägg till en ytterligare inre (nästlad) loop för varje extra tärning.
  93. // 5
  94. // Många varianter är möjliga. Denna försöker efterlikna vad en människa skulle göra "för hand".
  95. int previous = 1;
  96. int grains = 1;
  97. for (int i = 2; i <= 24; i += 1)
  98. {
  99. grains += previous * 2;
  100. previous = previous * 2;
  101. }
  102. // 5.1
  103. // Antalet riskorn i lösningen för 64 rutor är större än vad som ryms i ett vanligt heltal i C#.