【问题标题】:c# print the power of a number using recursionc# 使用递归打印数字的幂
【发布时间】:2013-11-28 18:05:45
【问题描述】:

我正在学习递归,我需要乘以两个给定数字的幂。当我运行我的代码时它不起作用(意味着控制台上没有显示任何内容)

方法:

 static int multiply (int x, int y)
    {
    if ( y == 1 )
        return   x ;
   else
        return (x + multiply(x, y - 1));
     }

    static int power(int x,int y)
    {
        if (y == 0)
            return 0;
        else
            return (x * power(x, y - 1));
    }

主要方法:

static void Main(string[] args)
    {
        multiply(2, 4);
        power(2, 5);
        Console.ReadLine();
    }

有人有什么想法吗?我有一种感觉,我在做一些明显很愚蠢的事情。

【问题讨论】:

  • 你永远不会输出任何东西..
  • 您为什么希望控制台上显示一些内容?
  • if (y == 0) return 0; 这里应该是return 1
  • 用于乘法 if ( y == 0 ) return 0 ;否则 if ( y == 1 ) 返回 x ;否则...

标签: c# recursion console.writeline


【解决方案1】:

将代码输出到控制台:

Console.WriteLine(multiply(2, 4));
Console.WriteLine(power(2, 5));

您可能还需要修复power 上的错误:

if (y == 0) return 1; // x⁰ = 1

【讨论】:

  • 哦,是的,我真笨。完全忽略了那两个位。谢谢
【解决方案2】:

目前,您没有将任何数据输出到控制台,因此您可以看到它。函数 Console.WriteLine() 将写入控制台。另一方面,Console.ReadLine() 会一直等待来自控制台的输入,这是为了防止程序立即退出。您的 Main 方法应该看起来更像这样:

static void Main(string[] args)
{
    int z = multiply(2, 4);
    int p = power(2, 5);
    Console.WriteLine("z : " + z);
    Console.WriteLine("p : " + p);
    Console.ReadLine();
}

你会注意到你的 power 函数中有一个错误,但是一旦你看到输出,我会让你调试它。

【讨论】:

    【解决方案3】:

    试试这个:

    static void Main(string[] args)
        {
            Console.WriteLine("2*4=" + multiply(2, 4));
            Console.WriteLine("2^5=" + power(2, 5));
            Console.ReadLine();
        }
    

    【讨论】:

      猜你喜欢
      • 2023-02-18
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多