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);