java 打印数字2规律的金字塔

          1
        1 2 1
      1 2 4 2 1
    1 2 4 8 4 2 1
  1 2 4 8 16 8 4 2 1

打印一个三角形的方法在上一篇博客已经描述了, 这里不在重复。

 感兴趣的可以去看上一篇:

https://blog.csdn.net/m0_73512487/article/details/129905078?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129905078%22%2C%22source%22%3A%22m0_73512487%22%7D

 

 首先老样子,还是找一下规律:

首先三角形画个中线,你会发现两边的数都时2的列数的次方, 2 ^ j。(注意, 次方时需要引入Math包的,不能是以^这种写法)当然,前提是以二维数组arr[ i ][ j ],并且数组的下标都是从0开始。

那中线右边呢,由于是和左边对称的,arr[ i ][ j ] = arr[ i ][ 2*i - j ]。

所以我们就可以直接写出代码。

源代码:

import java.lang.Math;
import java.util.Scanner;
public class Triangle{
	public static void main(String [] args){
		int i = 0 ;
		int j = 0 ;
		int k = 0 ;
		Scanner input = new Scanner(System.in);
		System.out.println("please input:");
		int InputNumber = input.nextInt();
		int[][] arr = new int[InputNumber][];
		for (i = 0 ;i < InputNumber; i++){
			arr[i] = new int[2*i+1];
			for(k = 0 ; k < InputNumber - i ; k++){
					System.out.print("  ");
				}
			for (j = 0 ; j < 2*i+1; j++){
				if(j <= i){
					arr[i][j] =(int) Math.pow(2.0,j);//中线左边				}
				else{
					arr[i][j] = arr[i][2*i - j];//中线右边
				}
				System.out.print(arr[i][j] + " ");
			}	
			System.out.println();
		}
	}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值