summaryrefslogtreecommitdiff
path: root/Q3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Q3.cpp')
-rw-r--r--Q3.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/Q3.cpp b/Q3.cpp
new file mode 100644
index 0000000..17f385a
--- /dev/null
+++ b/Q3.cpp
@@ -0,0 +1,41 @@
+
+#include <iostream>
+
+using namespace std;
+
+int main()
+{
+ unsigned int n1, n2;
+ bool good;
+ do { // read in valid numbers
+ cout << "Enter two integers between 0 and 999999: ";
+ cin >> n1 >> n2;
+ good = n1 <= 999999 && n1 >= 0 && n2 <= 999999 && n2 >= 0;
+ if (!good)
+ cout << "The numbers must be between 0 and 999999" << endl;
+ } while (!good);
+
+ int distance = 0;
+ int d1, d2;
+ int no1 = n1; //store original
+ int no2 = n2;
+
+ /*
+ * The Hamming distance between 2 decimal numbers
+ *
+ * Compare 1's place of both numbers,
+ * if not equal, the distance increases by 1.
+ * Move to the next place value and repeat
+ * we're done when both numbers get to 0
+ */
+ while (n1 != 0 || n2 != 0) {
+ d1 = n1 % 10;
+ d2 = n2 % 10;
+ if (d1 != d2)
+ distance++;
+ n1 /= 10;
+ n2 /= 10;
+ }
+ cout << "Hamming distance between " << no1 << " and " << no2 << " is " << distance << endl;
+ return 0;
+}