@@ -142,17 +142,20 @@ | |||||
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" /> | <ClInclude Include="include\1_ContainsNearbyDuplicate.h" /> | ||||
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" /> | <ClInclude Include="include\2_ExcelSheetColumnTitle.h" /> | ||||
<ClInclude Include="include\3_IsUgly.h" /> | <ClInclude Include="include\3_IsUgly.h" /> | ||||
<ClInclude Include="include\4_IsPalindrome.h" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" /> | <ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" /> | ||||
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" /> | <ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" /> | ||||
<ClCompile Include="src\3_IsUgly.cpp" /> | <ClCompile Include="src\3_IsUgly.cpp" /> | ||||
<ClCompile Include="src\4_IsPalindrome.cpp" /> | |||||
<ClCompile Include="src\main.cpp" /> | <ClCompile Include="src\main.cpp" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<None Include="config\1_ContainsNearbyDuplicate.ini" /> | <None Include="config\1_ContainsNearbyDuplicate.ini" /> | ||||
<None Include="config\2_ExcelSheetColumnTiTle.ini" /> | <None Include="config\2_ExcelSheetColumnTiTle.ini" /> | ||||
<None Include="config\3_IsUgly.ini" /> | <None Include="config\3_IsUgly.ini" /> | ||||
<None Include="config\4_IsPalindrome.ini" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||
<ImportGroup Label="ExtensionTargets"> | <ImportGroup Label="ExtensionTargets"> | ||||
@@ -24,6 +24,9 @@ | |||||
<ClInclude Include="include\3_IsUgly.h"> | <ClInclude Include="include\3_IsUgly.h"> | ||||
<Filter>头文件</Filter> | <Filter>头文件</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="include\4_IsPalindrome.h"> | |||||
<Filter>头文件</Filter> | |||||
</ClInclude> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp"> | <ClCompile Include="src\1_ContainsNearbyDuplicate.cpp"> | ||||
@@ -38,6 +41,9 @@ | |||||
<ClCompile Include="src\3_IsUgly.cpp"> | <ClCompile Include="src\3_IsUgly.cpp"> | ||||
<Filter>源文件</Filter> | <Filter>源文件</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="src\4_IsPalindrome.cpp"> | |||||
<Filter>源文件</Filter> | |||||
</ClCompile> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<None Include="config\1_ContainsNearbyDuplicate.ini"> | <None Include="config\1_ContainsNearbyDuplicate.ini"> | ||||
@@ -49,5 +55,8 @@ | |||||
<None Include="config\3_IsUgly.ini"> | <None Include="config\3_IsUgly.ini"> | ||||
<Filter>资源文件</Filter> | <Filter>资源文件</Filter> | ||||
</None> | </None> | ||||
<None Include="config\4_IsPalindrome.ini"> | |||||
<Filter>资源文件</Filter> | |||||
</None> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -0,0 +1,30 @@ | |||||
[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 | |||||
[Test7] | |||||
Na=-123321 | |||||
nExpect=0 | |||||
[Test8] | |||||
Na=14333341 | |||||
nExpect=1 | |||||
[Test9] | |||||
Na=3333333 | |||||
nExpect=1 | |||||
[Test10] | |||||
Na=123454321 | |||||
nExpect=1 |
@@ -0,0 +1,2 @@ | |||||
#pragma once | |||||
bool IsPalindrome(int x); |
@@ -0,0 +1,26 @@ | |||||
#include "../include/4_IsPalindrome.h" | |||||
//题目:判断一个数是否为回文数 | |||||
//思路:对传进来的数先知道是几位数,再循环%10,再/10,取到每位上的数字,再逆序*10相加, | |||||
// 得到翻转后的数,最后再和原数作对比。 | |||||
bool IsPalindrome(int x) | |||||
{ | |||||
if (x < 0) //如果入参为负数,则不是回文数,返回false | |||||
return false; | |||||
int x_Count = 1; //定义一个count用来统计传进来的数是几位数 | |||||
int x_Coln1 = x; //把传进来的数拷贝一份,因为后面对要对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; //除10,继续取个位数字 | |||||
} | |||||
if (x_Turn == x_Coln1) //判断翻转后的数和原数是否相等 | |||||
return true; | |||||
return false; | |||||
} |
@@ -17,6 +17,7 @@ | |||||
#include"../code/include/1_ContainsNearbyDuplicate.h" | #include"../code/include/1_ContainsNearbyDuplicate.h" | ||||
#include"../code/include/2_ExcelSheetColumnTitle.h" | #include"../code/include/2_ExcelSheetColumnTitle.h" | ||||
#include"../code/include/3_IsUgly.h" | #include"../code/include/3_IsUgly.h" | ||||
#include"../code/include/4_IsPalindrome.h" | |||||
int CalcCount(int n, char(*str)[10], const char* FileName); | int CalcCount(int n, char(*str)[10], const char* FileName); | ||||
@@ -5,6 +5,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; | |||||
#define FileName_1 "../code/config/1_ContainsNearbyDuplicate.ini" | #define FileName_1 "../code/config/1_ContainsNearbyDuplicate.ini" | ||||
#define FileName_2 "../code/config/2_ExcelSheetColumnTiTle.ini" | #define FileName_2 "../code/config/2_ExcelSheetColumnTiTle.ini" | ||||
#define FileName_3 "../code/config/3_IsUgly.ini" | #define FileName_3 "../code/config/3_IsUgly.ini" | ||||
#define FileName_4 "../code/config/4_IsPalindrome.ini" | |||||
namespace test1 | namespace test1 | ||||
@@ -65,4 +66,22 @@ namespace test3 | |||||
} | } | ||||
}; | }; | ||||
} | } | ||||
namespace test4 | |||||
{ | |||||
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)); | |||||
} | |||||
} | |||||
}; | |||||
} | |||||