C# 仅使用加法将数字提高到幂
我试图用加法将一个数字提升为幂,但它不起作用,它只会提升一个比原来大的数字。下面是我的代码:C# 仅使用加法将数字提高到幂,c#,addition,C#,Addition,我试图用加法将一个数字提升为幂,但它不起作用,它只会提升一个比原来大的数字。下面是我的代码: private void ExpOperation() { result = 0; num01 = Int32.Parse(inpu01.Text); num02 = Int32.Parse(inpu02.Text); int a = num02; num02 = num01; int i = 1;
private void ExpOperation()
{
result = 0;
num01 = Int32.Parse(inpu01.Text);
num02 = Int32.Parse(inpu02.Text);
int a = num02;
num02 = num01;
int i = 1;
while (i <= a)
{
result = SimpleMulti(num01,num02);
num01 = result;
i++;
}
result_Text.Text = result.ToString();
}
private int SimpleMulti (int num1, int num2)
{
int c = 0;
int i = 1;
while (i <= num2)
{
c += num1;
i++;
}
return c;
}
private void ExpOperation()
{
结果=0;
num01=Int32.Parse(inpu01.Text);
num02=Int32.Parse(inpu02.Text);
int a=num02;
num02=num01;
int i=1;
而(iprivate intsimplemulti(intx,inty)
{
int product=0;//乘法的结果
对于(inti=0;iprivate intsimplemulti(intx,inty)
{
int product=0;//乘法的结果
对于(int i=0;i我认为这个问题与这个站点的主要原因不太相关,但是我得到了一个解决方案:
public long ExpOperation(int a, int b)
{
long result = 0;
long temp = 0;
for (int i = 1; i <= b; i++) // Executes a full loop when we have successfully multiplied the base number "a" by itself
{
for (int j = 1; j <= a; j++) // Increase the result by itself for a times to multiply the result by itself
result += temp;
temp = result:
}
return result;
}
公共长指数运算(inta,intb)
{
长结果=0;
长期温度=0;
对于(int i=1;i我认为这个问题与这个站点的主要原因不太相关,但是我得到了一个解决方案:
public long ExpOperation(int a, int b)
{
long result = 0;
long temp = 0;
for (int i = 1; i <= b; i++) // Executes a full loop when we have successfully multiplied the base number "a" by itself
{
for (int j = 1; j <= a; j++) // Increase the result by itself for a times to multiply the result by itself
result += temp;
temp = result:
}
return result;
}
公共长指数运算(inta,intb)
{
长结果=0;
长期温度=0;
对于(int i=1;i,因为x^y=x*x^(y-1),它可以递归求解。由于所讨论的SimpleMulti
返回整数,我假设基和指数都是非负整数
private static int PowerWithAddition(int x, int y)
{
if(y == 0){
return 1;
}
var y1 = PowerWithAddition(x, y - 1);
var sum = 0;
for (int i = 0; i < y1; i++)
{
sum += x;
}
return sum;
}
private static int PowerWithAddition(int x,int y)
{
如果(y==0){
返回1;
}
var y1=功率加成(x,y-1);
var总和=0;
对于(int i=0;i因为x^y=x*x^(y-1)可以递归求解。因为所讨论的SimpleMulti
返回整数,我假设基和指数都是非负整数
private static int PowerWithAddition(int x, int y)
{
if(y == 0){
return 1;
}
var y1 = PowerWithAddition(x, y - 1);
var sum = 0;
for (int i = 0; i < y1; i++)
{
sum += x;
}
return sum;
}
private static int PowerWithAddition(int x,int y)
{
如果(y==0){
返回1;
}
var y1=功率加成(x,y-1);
var总和=0;
对于(int i=0;i
请为您的答案提供说明。这将帮助其他人了解您的解决方案是如何工作的。请为您的答案提供说明。这将帮助其他人了解您的解决方案是如何工作的。您需要更好的命名约定,我无法根据您的代码判断哪一个是指数您需要更好的命名约定,我无法判断哪一个是指数这是基于代码的指数