【发布时间】:2013-10-25 21:32:48
【问题描述】:
我一直在尝试用 Java 编写一个简单的函数,它可以在不使用循环的情况下计算一个数的 n 次方。
然后我发现 Math.pow(a, b) 类...或方法仍然无法区分两者,理论不太好。所以我写了这个..
public static void main(String[] args) {
int a = 2;
int b = 31;
System.out.println(Math.pow(a, b));
}
然后我想在不使用循环的情况下制作自己的 Math.pow 我希望它看起来比循环更简单,比如使用某种类型的 Repeat 我做了很多直到我遇到我尝试使用 StringUtils.repeat
的 commons-lang3 包之前的研究
到目前为止,我认为这是语法:-
public static String repeat(String str, int repeat)
StringUtils.repeat("ab", 2);
我在过去 24 小时 或更长时间内一直面临的问题是 StringUtils.repeat(String str, int 2); 重复字符串不输出puts、数字或计算。
我可以做些什么来克服这个问题,或者有没有其他更好的方法来创建一个计算幂的函数?
不使用循环或 Math.pow
这可能很有趣,但我花了一段时间才发现 StringUtils.repeat 只重复字符串,这就是我试图克服它的方法。万一它有帮助
public static int repeat(int cal, int repeat){
cal = 2+2;
int result = StringUtils.repeat(cal,2);
return result;
}
我可以不使用递归吗?可能是这样的
public static RepeatThis(String a)
{
System.out.println(a);
RepeatThis(a);
}
只是想深入了解 java,感谢您的所有 cmets,即使存在语法错误,只要理解逻辑对我有好处 :)
【问题讨论】:
-
它被称为
StringUtils 的事实应该给你一个提示,它是用于Strings 而不是数字... -
如果您尝试重新实现 Math.pow() 以用于学习目的,那么很好,否则请坚持使用此默认实现。你自己写不出更好的。使用非标准实现只会给您的代码增加不必要的复杂性,并使其他人更难理解。
-
@BoristheSpider 是的,你是对的。
-
@Muton 是的,这显然是出于学习目的。我认为重新实现像 Math.pow() 这样的东西没有任何意义,至少不是我的技能水平。但仍然感谢您的建议,提醒这些事情总是好的:)