为了账号安全,请及时绑定邮箱和手机立即绑定

杨辉三角下标越界问题

杨辉三角下标越界问题

水月心影镜中花 2017-07-09 14:17:24
package xuexi; public class YangHui { public static void main(String[] args) { // TODO Auto-generated method stub int sum[][] = new int[8][]; for(int i = 0; i <= sum.length; i++){ sum[i] = new int[i+1]; for(int j = 0; j <= sum[i].length - 1; j++){ if(i == 0|| j ==0|| j == sum[i].length - 1){ sum[i][j] = 1; }else{ sum[i][j] = sum[i-1][j] + sum[i-1][j-1]; } System.out.print(sum[i][j] + "\t"); } System.out.println(); } } }这是输出结果:1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at xuexi.YangHui.main(YangHui.java:9)需要帮助的问题:我想知道为什么会提示下标越界?还有这一段代码我看的不是太明白,请求指教。if(i == 0|| j ==0|| j == sum[i].length - 1){ sum[i][j] = 1; }else{ sum[i][j] = sum[i-1][j] + sum[i-1][j-1]; }非常感谢!
查看完整描述

1 回答

已采纳
?
Almirai

TA贡献11条经验 获得超4个赞

i <= sum.length

改成

i<sum.length

查看完整回答
反对 回复 2017-07-09
  • 水月心影镜中花
    水月心影镜中花
    可以了哎,但是这是为什么?
  • Almirai
    Almirai
    for(int j = 0; j <= sum[i].length - 1; j++){ 这里知道-1,上面的i你为什么不知道-1呢? length是数组的个数,从1开是计数,但是数组是从0开是的,所以length会比数组上限大一个数
  • 水月心影镜中花
    水月心影镜中花
    明白了,非常感谢
  • 1 回答
  • 0 关注
  • 1703 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信