首页 > 代码库 > 蓝桥杯 算法训练 ALGO-149 5-2求指数

蓝桥杯 算法训练 ALGO-149 5-2求指数

 算法训练 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 }

 

蓝桥杯 算法训练 ALGO-149 5-2求指数