Browse Source

分支21完成

master
linyongji 4 years ago
parent
commit
421c9146ab
11 changed files with 89 additions and 7 deletions
  1. +8
    -0
      .gitignore
  2. BIN
      Alogrithm/.vs/Alogrithm/v16/.suo
  3. +3
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj
  4. +9
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
  5. +24
    -0
      Alogrithm/Alogrithm/config/21_Reverse.ini
  6. +3
    -0
      Alogrithm/Alogrithm/include/21_Reverse.h
  7. +20
    -0
      Alogrithm/Alogrithm/src/21_Reverse.cpp
  8. +4
    -6
      Alogrithm/Alogrithm/src/main.cpp
  9. +16
    -0
      Alogrithm/UnitTest/UnitTest.cpp
  10. +1
    -1
      Alogrithm/UnitTest/UnitTest.vcxproj
  11. +1
    -0
      Alogrithm/UnitTest/pch.h

+ 8
- 0
.gitignore View File

@@ -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

BIN
Alogrithm/.vs/Alogrithm/v16/.suo View File


+ 3
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj View File

@@ -152,6 +152,7 @@
<ClCompile Include="src\19_MySqrt.cpp" />
<ClCompile Include="src\1_ContainsNearbyDuplicate.cpp" />
<ClCompile Include="src\20_MoveZeroes.cpp" />
<ClCompile Include="src\21_Reverse.cpp" />
<ClCompile Include="src\2_ExcelSheetColumnTitle.cpp" />
<ClCompile Include="src\3_bool IsUgly.cpp" />
<ClCompile Include="src\4_IsPalindrome.cpp" />
@@ -174,6 +175,7 @@
<ClInclude Include="include\19_MySqrt.h" />
<ClInclude Include="include\1_ContainsNearbyDuplicate.h" />
<ClInclude Include="include\20_MoveZeroes.h" />
<ClInclude Include="include\21_Reverse.h" />
<ClInclude Include="include\2_ExcelSheetColumnTitle.h" />
<ClInclude Include="include\3_bool IsUgly.h" />
<ClInclude Include="include\4_IsPalindrome.h" />
@@ -195,6 +197,7 @@
<None Include="config\19_MySqrt.ini" />
<None Include="config\1_ContainsNearbyDuplicate.ini" />
<None Include="config\20_MoveZeroes.ini" />
<None Include="config\21_Reverse.ini" />
<None Include="config\2_ExcelSheetColumnTiTle.ini" />
<None Include="config\3_bool IsUgly.ini" />
<None Include="config\4_IsPalindrome.ini" />


+ 9
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj.filters View File

@@ -84,6 +84,9 @@
<ClCompile Include="src\20_MoveZeroes.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
<ClCompile Include="src\21_Reverse.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\2_ExcelSheetColumnTitle.h">
@@ -143,6 +146,9 @@
<ClInclude Include="include\20_MoveZeroes.h">
<Filter>头文件\include</Filter>
</ClInclude>
<ClInclude Include="include\21_Reverse.h">
<Filter>头文件\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="config\3_bool IsUgly.ini">
@@ -202,5 +208,8 @@
<None Include="config\20_MoveZeroes.ini">
<Filter>资源文件\config</Filter>
</None>
<None Include="config\21_Reverse.ini">
<Filter>资源文件\config</Filter>
</None>
</ItemGroup>
</Project>

+ 24
- 0
Alogrithm/Alogrithm/config/21_Reverse.ini View File

@@ -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

+ 3
- 0
Alogrithm/Alogrithm/include/21_Reverse.h View File

@@ -0,0 +1,3 @@
#pragma once
#include <limits.h>
int Reverse(int x);

+ 20
- 0
Alogrithm/Alogrithm/src/21_Reverse.cpp View File

@@ -0,0 +1,20 @@
#include "../include/21_Reverse.h"
//题目:给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转。
//思路:入参从个位开始取,把取到的数乘10累加,就是需要的结果
// 溢出问题:在每一次相加之前检查是否溢出
// 正溢出:当sum大于214748367/10,或者sum 等于 2147483647/10 && 取到的个位数pop大于7,则溢出
// 负溢出:当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;
}

+ 4
- 6
Alogrithm/Alogrithm/src/main.cpp View File

@@ -1,13 +1,11 @@
#include<stdio.h>
#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));


}

+ 16
- 0
Alogrithm/UnitTest/UnitTest.cpp View File

@@ -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));
}
}
};
}

+ 1
- 1
Alogrithm/UnitTest/UnitTest.vcxproj View File

@@ -103,7 +103,7 @@
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<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;%(AdditionalDependencies)</AdditionalDependencies>
<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)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">


+ 1
- 0
Alogrithm/UnitTest/pch.h View File

@@ -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);


||||||
x
 
000:0
Loading…
Cancel
Save