aboutsummaryrefslogtreecommitdiff
path: root/week03/exercise11.cpp
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2023-11-02 15:00:22 +0200
committerSyndamia <kamen@syndamia.com>2023-11-02 15:00:22 +0200
commitd09b1a288ae51fe2e141676948d225296f2f7d72 (patch)
tree7e3666545c04c4602be5374859001bf03e98f4b3 /week03/exercise11.cpp
parentfbbe586d25b1ebaf66fe2e92e1986bb5debf961d (diff)
downloadupp-2023-solutions-d09b1a288ae51fe2e141676948d225296f2f7d72.tar
upp-2023-solutions-d09b1a288ae51fe2e141676948d225296f2f7d72.tar.gz
upp-2023-solutions-d09b1a288ae51fe2e141676948d225296f2f7d72.zip
[w3] Added solutions
Diffstat (limited to 'week03/exercise11.cpp')
-rw-r--r--week03/exercise11.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/week03/exercise11.cpp b/week03/exercise11.cpp
new file mode 100644
index 0000000..c4bf464
--- /dev/null
+++ b/week03/exercise11.cpp
@@ -0,0 +1,29 @@
+#include <iostream>
+#include <cassert>
+
+int parseSensor(int s) { return ((((s=(s>>1)&(~0xF617A100))<0x54)?s|0xF01:s&0xCBFF)>>2)-21; }
+
+int main() {
+ int rawValue;
+ std::cin >> rawValue;
+
+ int temp = parseSensor(rawValue);
+ assert(-20 <= temp);
+ assert(temp <= 40);
+
+ if (30 <= temp && temp <= 40) {
+ std::cout << "Hot" << std::endl;
+ }
+ else if (20 <= temp && temp <= 29) {
+ std::cout << "Warm" << std::endl;
+ }
+ else if (11 <= temp && temp <= 19) {
+ std::cout << "Temperate" << std::endl;
+ }
+ else if (0 <= temp && temp <= 10) {
+ std::cout << "Cold" << std::endl;
+ }
+ else if (-20 <= temp && temp <= -1) {
+ std::cout << "Freezing" << std::endl;
+ }
+}