我必须使用n-1乘法,但我对证明算法的正确性和找到上界感到困惑。我该怎么做/展示??
我知道2022=20*(100+1(+2
2022=200+2
2022=2000+2+2++2.等
我不知道你为什么要把2022分解为加法。m^n
表示将m
自身乘以n
,例如:
2022^n=2022*2022*…*2022.
注意2022出现n
次(这是将数字提升为幂的定义(,并且存在n-1
乘法运算。
例如,2022^2 = 2022 * 2022
。有一个乘法运算。
你可以在这样的代码中完成这一点(这里是C#,但这个概念适用于每种语言(:
long m = 2022;
long n = 3;
long counter = 1;
for (int i = 0; i < n; i++)
counter = counter * m;
Console.WriteLine(counter);
注意,将2022提高到n的适度大的值将溢出64位整数类型。使用浮点类型仍然可以获得较大n的良好近似值。
正如评论中提到的,一种更有效但不太明显的方法是通过平方进行指数化。