Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';你不能取一个变量,然后将它自身相乘吗?_C# - Fatal编程技术网

C# 为什么可以';你不能取一个变量,然后将它自身相乘吗?

C# 为什么可以';你不能取一个变量,然后将它自身相乘吗?,c#,C#,我试图使用for循环将一个数字提高到幂。然而,当我写下并运行它时,它给了我一个随机数 using System; class Program { static void Main(string[] args) { var a = 5; for(int i=0; i<5; i++){ a*=a; } Console.WriteLine(a); } } 使用系统; 班级计划{

我试图使用
for
循环将一个数字提高到幂。然而,当我写下并运行它时,它给了我一个随机数

using System;

class Program {
    static void Main(string[] args) {
        var a = 5;
        for(int i=0; i<5; i++){
            a*=a;
        }
        Console.WriteLine(a);
    }
    
}
使用系统;
班级计划{
静态void Main(字符串[]参数){
var a=5;

对于(inti=0;i您可以自己相乘,但不能显示结果,因为您溢出了整数(超过int32大小)(本例中的默认值为int32)

您的结果:

  • 二十五
  • 625
  • 390625
  • 超出范围(超出大小)
您的问题的答案应该是:

var initialValue = 2;
var exponent = 4;
var power = initialValue;

for (int i = 0; i < exponent ; i++)
{
    initialValue *= power;
}

代码工作正常您只是溢出了整数,请尝试使用long代替。long a=5;-您希望代码做什么?此代码完全按照您所说的做,您将初始数字(2)乘以它本身(即提高到2的幂次方)每次。这样做4次会给你65536。请澄清你所说的“产生一个随机数”是什么意思。你的输入是什么,你的预期输出是什么,你得到了什么?对不起,我弄错了。我修复了它,现在它工作正常。我不小心写了一个更大的数字,它溢出了。他可以自己乘法,但他也必须记住,结果可能超出范围。总之,回答得好。你从哪里得到25?我得到了不同t结果,目前都在
int
范围内:哦,嗯,以5作为起始值,它实际上会导致溢出。回滚问题帖子?是的,我已经回滚了。@DavidG-OP在他最新的问题下面的评论中确认他溢出了。
var exponentiation = Math.Pow(2, 5);