算法训练 5-2求指数
时间限制:1.0s 内存限制:256.0MB
问题描述
已知n和m,打印n^1,n^2,...,n^m。要求用静态变量实现。n^m表示n的m次方。已知n和m,打印n^1,n^2,...,n^m。要求用静态变量实现。n^m表示n的m次方。(每行显示5个数,每个数宽为12,右对齐)
样例输入
一个满足题目要求的输入范例。
例:
3 8
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
例:n^m小于int 的表示范围。
题目解析:
这是一道暴力破解的题目。需要有一个记录 n 的 m 次方的数 num,令 num = 1,然后循环 m 次,每次都给num 乘 n,然后利用 printf 带格式输出。
应避免使用 (int) Math.pow(n, i) 每次 i + 1 来循环计算 n 的 m 次方,因为这样会出现 m - 1 次重复的计算。在计算 n 的 3 次方时, n 的 2 次方已经计算好了,所以设置一个记录数会使程序的执行效率更高一些。
示例代码:
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 int n = sc.nextInt(); 7 int m = sc.nextInt(); 8 int num = 1; //记录 n 的 i 次方 9 for(int i = 1 ; i <= m ; i++){ 10 num *= n; 11 System.out.printf("%12d",num); 12 if(i % 5 == 0){ 13 System.out.print("\n"); 14 } 15 } 16 } 17 }
时间: 2024-12-20 17:15:20