问题描述
已知n和m,打印n^1,n^2,...,n^m。要求用静态变量实现。n^m表示n的m次方。已知n和m,打印n^1,n^2,...,n^m。要求用静态变量实现。(每行显示5个数,每个数宽为12,右对齐)
样例输入
一个满足题目要求的输入范例。
例:
3 8
样例输出
与上面的样例输入对应的输出。
数据规模和约定
例:n^m小于int 的表示范围。
思路
一开始想用递归,结果弄了半天不行,以后都是结果自己自乘了,因为传入函数的a变了
public static void power(int a, int b){
int s = a * a; //result
System.out.printf("%12d", s);
if (b > 0 && a < 2147483647) {
power(s, b - 1);
}
else
return;
}
想了想,我还是用循环好了 - -||
结果循环用起来特别顺手啊!!
然后,为了满足“每行显示5个数,每个数宽为12,右对齐”,就要用到JAVA输出中的printf语句,右对齐反而是正的(刚开始我加了负号,结果成了左对齐 - -)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner number = new Scanner(System.in);
int n = number.nextInt();
int m = number.nextInt();
power(n, m);
}
public static void power(int a, int b){
int s, i;
for(s = 1, i = 1; i <= b; i++){
s = s * a;
if(i % 5 == 0)
System.out.printf("%12d\n", s);
else
System.out.printf("%12d", s);
}
}
}