feat(makeTheIntegerZeio): add C# solution

This commit is contained in:
2025-09-05 16:54:03 +08:00
parent c3955ad390
commit 63880d4717
2 changed files with 94 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
// LeetCode 2749: Minimum Operations To Make The Integer Zero
// 難度: Medium
// 日期: 2025-09-05
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution
{
public int MakeTheIntegerZero(int num1, int num2)
{
for (int k = 1; k <= 60; k++)
{
long target = (long)num1 - (long)k * num2;
if (target < 0) continue;
int bitCount = CountSetBits(target);
if (bitCount <= k && k <= target)
{
return k;
}
}
return -1;
}
private int CountSetBits(long n)
{
int count = 0;
while (n > 0)
{
// 方法一
// count += (int)(n & 1);
// n >>= 1;
// 方法二
count++;
n &= n - 1;
}
return count;
}
}
public class Program
{
public static void Main()
{
Solution solution = new Solution();
TestCase1(solution);
TestCase2(solution);
}
static void TestCase1(Solution solution)
{
int num1 = 3, num2 = -2;
int expected = 3;
int actual = solution.MakeTheIntegerZero(num1, num2);
Console.WriteLine("Test 1:");
Console.WriteLine($"Input: num1 = {num1}, num2 = {num2}");
Console.WriteLine($"Expected: {expected}");
Console.WriteLine($"Actual: {actual}");
Console.WriteLine($"Result: {(actual == expected ? "PASS" : "FAIL")}");
Console.WriteLine();
}
static void TestCase2(Solution solution)
{
int num1 = 5, num2 = 7;
int expected = -1;
int actual = solution.MakeTheIntegerZero(num1, num2);
Console.WriteLine("Test 2:");
Console.WriteLine($"Input: num1 = {num1}, num2 = {num2}");
Console.WriteLine($"Expected: {expected}");
Console.WriteLine($"Actual: {actual}");
Console.WriteLine($"Result: {(actual == expected ? "PASS" : "FAIL")}");
Console.WriteLine();
}
}

View File

@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>