diff --git a/.gitignore b/.gitignore index 63ee83b..c634ed9 100644 --- a/.gitignore +++ b/.gitignore @@ -91,3 +91,6 @@ Alogrithm/Debug/UnitTest.exp Alogrithm/Debug/UnitTest.ilk Alogrithm/Debug/UnitTest.lib Alogrithm/Debug/UnitTest.pdb +Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/b7e343aeb2d15224/4_ISPALINDROME.ipch +Alogrithm/Alogrithm/Debug/4_IsPalindrome.obj +Alogrithm/TestResults/6fafde8c-d7b3-4676-8e54-90b128e5f315/林_MI-1 2021-01-15 09_25_22.coverage diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo index 9ab78c7..d4c470f 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 a50f01e..0da0661 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj @@ -143,17 +143,20 @@ + + + diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters index 98f0953..1b932e1 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters @@ -36,6 +36,9 @@ 源文件\src + + 源文件\src + @@ -47,6 +50,9 @@ 头文件\include + + 头文件\include + @@ -58,5 +64,8 @@ 资源文件\config + + 资源文件\config + \ No newline at end of file diff --git a/Alogrithm/Alogrithm/config/4_IsPalindrome.ini b/Alogrithm/Alogrithm/config/4_IsPalindrome.ini new file mode 100644 index 0000000..1730509 --- /dev/null +++ b/Alogrithm/Alogrithm/config/4_IsPalindrome.ini @@ -0,0 +1,18 @@ +[Test1] +Na=121 +nExpect=1 +[Test2] +Na=123321 +nExpect=1 +[Test3] +Na=214748367 +nExpect=0 +[Test4] +Na=1212 +nExpect=0 +[Test5] +Na=20 +nExpect=0 +[Test6] +Na=-214748368 +nExpect=0 \ No newline at end of file diff --git a/Alogrithm/Alogrithm/include/4_IsPalindrome.h b/Alogrithm/Alogrithm/include/4_IsPalindrome.h new file mode 100644 index 0000000..11bf0c3 --- /dev/null +++ b/Alogrithm/Alogrithm/include/4_IsPalindrome.h @@ -0,0 +1,3 @@ +#pragma once + +bool IsPalindrome(int x); \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/4_IsPalindrome.cpp b/Alogrithm/Alogrithm/src/4_IsPalindrome.cpp new file mode 100644 index 0000000..bd06958 --- /dev/null +++ b/Alogrithm/Alogrithm/src/4_IsPalindrome.cpp @@ -0,0 +1,28 @@ +#include "../include/4_IsPalindrome.h" + +//˼·Դ֪Ǽλѭ%10/10,ȡÿλϵ֣*10ӣõת +//ٺԭԱȡ + +bool IsPalindrome(int x) +{ + int x_Count = 1;//һcountͳƴǼλ + long long x_Coln1 = x;//Ѵһݣõ + long long x_Turn = 0;//淭תֵintת + while ((x / 10) != 0) {//ͨѭǼλ + x_Count++; + x = x / 10; + } + x = x_Coln1;//ԭ滹Ҫõ + for (int i = 0; i < x_Count; i++) {//úŵx_TurnУ + int temp = x % 10; + x_Turn = x_Turn * 10 + temp; + x = x / 10; + } + if (x_Coln1 < 0) {//жǷΪǵĻϸţñ + x_Turn = 0 - x_Turn; + } + if (x_Turn == x_Coln1) {//жϷתԭǷ + return true; + } + return false; +} \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/main.cpp b/Alogrithm/Alogrithm/src/main.cpp index e5da2e0..7490043 100644 --- a/Alogrithm/Alogrithm/src/main.cpp +++ b/Alogrithm/Alogrithm/src/main.cpp @@ -3,6 +3,6 @@ int main() { //ExcelSheetColumnTitle(10); - printf("%d\n", IsUgly(6)); + //printf("%d\n", IsUgly(6)); return 0; -} \ No newline at end of file +} diff --git a/Alogrithm/UnitTest/UnitTest.cpp b/Alogrithm/UnitTest/UnitTest.cpp index 02a5cee..08d0654 100644 --- a/Alogrithm/UnitTest/UnitTest.cpp +++ b/Alogrithm/UnitTest/UnitTest.cpp @@ -5,6 +5,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; #define FileName_1 "../Alogrithm/config/1_ContainsNearbyDuplicate.ini" #define FileName_2 "../Alogrithm/config/2_ExcelSheetColumnTiTle.ini" #define FileName_3 "../Alogrithm/config/3_bool IsUgly.ini" +#define FileName_4 "../Alogrithm/config/4_IsPalindrome.ini" namespace UnitTest { @@ -56,5 +57,20 @@ namespace UnitTest Assert::AreEqual(nReal, CstrToBool(nExpect)); } } - }; + }; + TEST_CLASS(UnitTest_4) + { + TEST_METHOD(TestMethode1) + { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_4); + CString Na, nExpect; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "Na", " ", Na.GetBuffer(20), 20, FileName_4); + GetPrivateProfileString(Section_Name[i], "nExpect", " ", nExpect.GetBuffer(20), 20, FileName_4); + bool nReal = IsPalindrome(_ttoi(Na)); + Assert::AreEqual(nReal, CstrToBool(nExpect)); + } + } + }; } diff --git a/Alogrithm/UnitTest/UnitTest.vcxproj b/Alogrithm/UnitTest/UnitTest.vcxproj index c535e32..0f62b5f 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;%(AdditionalDependencies) + ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;%(AdditionalDependencies) diff --git a/Alogrithm/UnitTest/pch.h b/Alogrithm/UnitTest/pch.h index c6d59d0..eb25a56 100644 --- a/Alogrithm/UnitTest/pch.h +++ b/Alogrithm/UnitTest/pch.h @@ -16,6 +16,8 @@ #include"../Alogrithm/include/1_ContainsNearbyDuplicate.h" #include"../Alogrithm/include/2_ExcelSheetColumnTitle.h" #include"../Alogrithm/include/3_bool IsUgly.h" +#include"../Alogrithm/include/4_IsPalindrome.h" + int CalcCount(int n, char(*str)[10],const char *FileName);