c#使用递归打印数字的幂
我正在学习递归,我被要求对两个给定数字进行乘法和幂运算。当我运行代码时,它不工作(意味着控制台上没有显示任何内容) 方法:c#使用递归打印数字的幂,c#,recursion,console.writeline,C#,Recursion,Console.writeline,我正在学习递归,我被要求对两个给定数字进行乘法和幂运算。当我运行代码时,它不工作(意味着控制台上没有显示任何内容) 方法: 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
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();
}
有人有什么想法吗?我有一种感觉,我在做一些明显愚蠢的事情。试试这个:
static void Main(string[] args)
{
Console.WriteLine("2*4=" + multiply(2, 4));
Console.WriteLine("2^5=" + power(2, 5));
Console.ReadLine();
}
将代码输出到控制台:
Console.WriteLine(multiply(2, 4));
Console.WriteLine(power(2, 5));
您可能还需要修复电源上的错误:
if (y == 0) return 1; // x⁰ = 1
目前,您没有将任何数据输出到控制台以便查看。函数Console.WriteLine()将写入控制台。另一方面,Console.ReadLine()将持续等待来自控制台的输入,这是为了防止程序立即退出。您的主要方法应该更像这样:
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函数中有一个bug,但是一旦你能看到输出,我会让你调试它。你从来没有输出过任何东西。为什么你希望控制台上会显示一些东西?
如果(y==0)返回0如果(y==0)返回0,这里应该是返回1
进行乘法;如果(y==1),则返回x;否则…哦,是的,我真蠢。完全忽略了这两个方面。谢谢