C# 如何在没有乘法、除法运算符或循环的情况下将两个正整数相乘

C# 如何在没有乘法、除法运算符或循环的情况下将两个正整数相乘,c#,C#,我需要将两个整数相乘,而不使用乘法或除法运算符、任何内置的乘法函数或循环 我已经设法用循环来做乘法,但我不知道没有循环怎么做 以下是我的循环解决方案: Public Double(Double x, Double y) { Double Result; Result =0; If(x==0 || y==0) { Result = 0; } else { for(int i=0; i<=y; i++) { Result = Result + x;

我需要将两个整数相乘,而不使用乘法或除法运算符、任何内置的乘法函数或循环

我已经设法用循环来做乘法,但我不知道没有循环怎么做

以下是我的循环解决方案:

Public Double(Double x, Double y)
{
 Double Result;
 Result =0;
 If(x==0 || y==0)
 {
   Result = 0;
  }
 else
 {
  for(int i=0; i<=y; i++)
   {
     Result = Result + x;   
   }
 }
        return Result;
}
Public-Double(双x,双y)
{
双重结果;
结果=0;
如果(x==0 | | y==0)
{
结果=0;
}
其他的
{

对于(int i=0;i您可以在函数中执行以下操作

        List<int> temp = new List<int>();
        temp.AddRange(Enumerable.Repeat(x,y));

        var result = test.Sum();
List temp=new List();
温度范围(可枚举重复(x,y));
var result=test.Sum();
其中,您的“y”变量将是一个整数计数。但是,我不确定您到底在寻找什么

我需要将两个整数相乘,而不使用乘法或除法运算符、任何内置的乘法函数或循环

阅读您问题的条件,我认为这里的想法是使用更智能的计算方法,例如按位运算

根据中的答案,我为您的问题提出以下解决方案:

    public int MultiplyBitwise(int a, int b)
    {
        int product = 0;
        while (b > 0)
        {
            product += ((b & 1) > 0) ? a : 0;
            a <<= 1;
            b >>= 1;
        }

        return product;
    }
public int MultiplyBitwise(int a,int b)
{
int乘积=0;
而(b>0)
{
产品+=((b&1)>0)?a:0;
a=1;
}
退货产品;
}

<代码>你接受双打,但是你的方法只有在<代码> y>代码>是整数的情况下才有效。你真的需要支持浮点数吗?你也不支持负数。不,我不考虑,我正在研究整数,然后让你的方法接受一个整数类型,而不是浮点类型。ecursion算作一个循环?