diff --git a/.gitignore b/.gitignore
index ca8cd71..9d51f36 100644
--- a/.gitignore
+++ b/.gitignore
@@ -170,3 +170,11 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/85aeac5e7d03af9f/20_MOVEZEROES.ipch
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/b02cd44cfc574591/20_MOVEZEROES.ipch
Alogrithm/Alogrithm/Debug/20_MoveZeroes.obj
Alogrithm/UnitTest/Debug/UnitTest.tlog/link.7728.delete.1.tlog
+Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/38968d1650bcc194/21_REVERSE.ipch
+Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/8f9978f090d76ea5/21_REVERSE.ipch
+Alogrithm/.vs/Alogrithm/v16/TestStore/0/006.testlog
+Alogrithm/Alogrithm/Debug/21_Reverse.obj
+Alogrithm/TestResults/3a4f3224-7b61-4f96-9f94-502bfe5fd902/林_MI-1 2021-01-26 13_42_25.coverage
+Alogrithm/TestResults/8c6c8585-34aa-48ac-85e3-14d7928dfa16/林_MI-1 2021-01-26 13_40_06.coverage
+Alogrithm/TestResults/a754108b-7c18-474b-b14f-0bda44b6f79f/林_MI-1 2021-01-26 13_35_01.coverage
+Alogrithm/UnitTest/Debug/UnitTest.tlog/link.1416.delete.1.tlog
diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo
index f4551ac..2ef4303 100644
Binary files a/Alogrithm/.vs/Alogrithm/v16/.suo and b/Alogrithm/.vs/Alogrithm/v16/.suo differ
diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj b/Alogrithm/Alogrithm/Alogrithm.vcxproj
index 56ea826..e874e1f 100644
--- a/Alogrithm/Alogrithm/Alogrithm.vcxproj
+++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj
@@ -152,6 +152,7 @@
+
@@ -174,6 +175,7 @@
+
@@ -195,6 +197,7 @@
+
diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
index 62abcdf..ff3e4de 100644
--- a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
+++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
@@ -84,6 +84,9 @@
源文件\src
+
+ 源文件\src
+
@@ -143,6 +146,9 @@
头文件\include
+
+ 头文件\include
+
@@ -202,5 +208,8 @@
资源文件\config
+
+ 资源文件\config
+
\ No newline at end of file
diff --git a/Alogrithm/Alogrithm/config/21_Reverse.ini b/Alogrithm/Alogrithm/config/21_Reverse.ini
new file mode 100644
index 0000000..01e0c8c
--- /dev/null
+++ b/Alogrithm/Alogrithm/config/21_Reverse.ini
@@ -0,0 +1,24 @@
+[Test1]
+Input=123
+Output=321
+[Test2]
+Input=-123
+Output=-321
+[Test3]
+Input=2147483647
+Output=0
+[Test4]
+Input=-2147483648
+Output=0
+[Test5]
+Input=2147483641
+Output=1463847412
+[Test6]
+Input=1663847412
+Output=0
+[Test7]
+Input=1000123
+Output=3210001
+[Test8]
+Input=-846384741
+Output=-147483648
\ No newline at end of file
diff --git a/Alogrithm/Alogrithm/include/21_Reverse.h b/Alogrithm/Alogrithm/include/21_Reverse.h
new file mode 100644
index 0000000..a4b2372
--- /dev/null
+++ b/Alogrithm/Alogrithm/include/21_Reverse.h
@@ -0,0 +1,3 @@
+#pragma once
+#include
+int Reverse(int x);
\ No newline at end of file
diff --git a/Alogrithm/Alogrithm/src/21_Reverse.cpp b/Alogrithm/Alogrithm/src/21_Reverse.cpp
new file mode 100644
index 0000000..7153008
--- /dev/null
+++ b/Alogrithm/Alogrithm/src/21_Reverse.cpp
@@ -0,0 +1,20 @@
+#include "../include/21_Reverse.h"
+//Ŀһ32λзҪÿλϵֽзת
+//˼·δӸλʼȡȡ10ۼӣҪĽ
+// ⣺ÿһ֮ǰǷ
+// sum214748367/10,sum 2147483647/10 && ȡĸλpop7
+// sumС-214748368/10,sum -2147483648/10 && ȡĸλpopС-8
+int Reverse(int x) {
+ int sum = 0; //ŷֵ
+ int pop = 0; //θλ
+ while (x != 0) { //ѭ10ֱΪֹ
+ pop = x % 10; //ȡλ
+ x = x / 10; //γ10Ϊȡһ
+ if ((sum > INT_MAX / 10) || (sum == INT_MAX/10 && pop > 7)) //ж
+ return 0;
+ if ((sum < INT_MIN / 10) || (sum == INT_MIN/10 && pop < -8)) //ж
+ return 0;
+ sum = sum * 10 + pop; //ѵõĸλ*10ӣõľҪص
+ }
+ return sum;
+}
\ No newline at end of file
diff --git a/Alogrithm/Alogrithm/src/main.cpp b/Alogrithm/Alogrithm/src/main.cpp
index 95bb9b6..5b673de 100644
--- a/Alogrithm/Alogrithm/src/main.cpp
+++ b/Alogrithm/Alogrithm/src/main.cpp
@@ -1,13 +1,11 @@
#include
-#include "../include/20_MoveZeroes.h"
+#include "../include/21_Reverse.h"
int main()
{
- int arr[6] = { 1,2,0,1,0};
- MoveZeroes(arr, 5);
- for (int i = 0; i < 5; i++) {
- printf("%d ", arr[i]);
- }
+
+ printf("%d ",Reverse(214748364));
+
}
diff --git a/Alogrithm/UnitTest/UnitTest.cpp b/Alogrithm/UnitTest/UnitTest.cpp
index 404f4fc..f3ee58f 100644
--- a/Alogrithm/UnitTest/UnitTest.cpp
+++ b/Alogrithm/UnitTest/UnitTest.cpp
@@ -21,6 +21,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework;
#define FileName_18 "../Alogrithm/config/18_PlusOne.ini"
#define FileName_19 "../Alogrithm/config/19_MySqrt.ini"
#define FileName_20 "../Alogrithm/config/20_MoveZeroes.ini"
+#define FileName_21 "../Alogrithm/config/21_Reverse.ini"
namespace UnitTest
{
@@ -371,4 +372,19 @@ namespace UnitTest
}
}
};
+ TEST_CLASS(UnitTest_21)
+ {
+ TEST_METHOD(TestMethode1)
+ {
+ char Section_Name[100][10] = { 0 };
+ int Section_Count = CalcCount(100, Section_Name, FileName_21);
+ CString input, output;
+ for (int i = 0; i < Section_Count; i++) {
+ GetPrivateProfileString(Section_Name[i], "Input", " ", input.GetBuffer(100), 100, FileName_21);
+ GetPrivateProfileString(Section_Name[i], "Output", " ", output.GetBuffer(100), 100, FileName_21);
+ int nReal = Reverse(_ttoi(input));
+ Assert::AreEqual(nReal, _ttoi(output));
+ }
+ }
+ };
}
diff --git a/Alogrithm/UnitTest/UnitTest.vcxproj b/Alogrithm/UnitTest/UnitTest.vcxproj
index c51fda8..9b3db92 100644
--- a/Alogrithm/UnitTest/UnitTest.vcxproj
+++ b/Alogrithm/UnitTest/UnitTest.vcxproj
@@ -103,7 +103,7 @@
Windows
$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)
DebugFull
- ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;../Alogrithm/Debug/18_PlusOne.obj;../Alogrithm/Debug/19_MySqrt.obj;../Alogrithm/Debug/20_MoveZeroes.obj;%(AdditionalDependencies)
+ ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;../Alogrithm/Debug/18_PlusOne.obj;../Alogrithm/Debug/19_MySqrt.obj;../Alogrithm/Debug/20_MoveZeroes.obj;../Alogrithm/Debug/21_Reverse.obj;%(AdditionalDependencies)
diff --git a/Alogrithm/UnitTest/pch.h b/Alogrithm/UnitTest/pch.h
index d2337f2..160e994 100644
--- a/Alogrithm/UnitTest/pch.h
+++ b/Alogrithm/UnitTest/pch.h
@@ -32,6 +32,7 @@
#include"../Alogrithm/include/18_PlusOne.h"
#include"../Alogrithm/include/19_MySqrt.h"
#include"../Alogrithm/include/20_MoveZeroes.h"
+#include"../Alogrithm/include/21_Reverse.h"
int CalcCount(int n, char(*str)[10],const char *FileName);