美文网首页Android知识Android技术知识
程序员抢了数学家的饭碗

程序员抢了数学家的饭碗

作者: 威哥爱编程 | 来源:发表于2016-10-12 08:50 被阅读75次

【威哥说】没有接触过程序的同学,感觉代码距离我们很好遥远,可是你真正的学会了编程之后,你才知道,其实程序可是实现所有的事物。本篇文章就是波波老师针对一个学生的提问,单纯的使用循环和判断实现的杨辉三角。大家一起学习一下吧。

有学生问到杨辉三角该如何用代码实现,说来也有意思,他把规律都总结完了,就是写不出来代码,我一问是为什么,小伙说不能用数组,就单纯的用循环和判断来实现,想想觉得还挺有意思,就整理了整理。

网上找了找代码,有趣的是都是用的二维数组来实现的,所以就没有具体去研究了,看看如何自己来实现。首先我们看一下效果图:

如上图所示,这里我们从控制台输入要显示的行数,然后来具体的进行显示。

首先,总结规律如下:

第n行的第一个数为1,第二个数为1x(n-1),第三个数为1x(n-1)x(n-2)/2,第四个数为1x(n-1)x(n-2)/2x(n-3)/3…依次类推。

那么找到规律了,就很好解决了,具体如何用代码来实现?

首先看到这么一个图形,首先第一反应嵌套循环是跑不掉的,如果没有第一时间对嵌套

循环产生想法,那么证明你三角形还是画少了。。。;

首先我们通过Scanner获取一个键盘输入的数:

Scanner input = new Scanner(System.in);

int n = input.nextInt();

那么首先外层循环控制行数:

for( int i = 1 ; i <=n ; i++ ){

//由上面的布局来看,前面是要输出一个倒三角的空格形状的,那么此处我们用空格给代替

//由于倒三角是上面多下面少,呈递减趋势,所以我们初始位置为n,判断条件为j>=i,趋势为递减,就能得到一个递减的趋势了。

for (int j = n; j >=i; j--) {

//这里输出空格

System.out.print("  ");

}

//由上面的总结我们看一下

第一个数:    a1 = 1

第二个数:    a2 = a1x(n-1)

第三个数:    a3 = a2x(n-2)/2

第四个数:    a4 = a3x(n-3)/3

… …

总结出来规律就是每行后一个数是前一个数乘以(n-(第几个数-1))/(第几个数-1);

所以每轮需要一个数来记录前一个数的值,这里我们定义一个sum,初始值等于1

int sum = 1;

//首先需要一个内层循环控制每行的个数,而且我们发现每行的个数是递增的所以,初始为1,小于等于i,就能达成递增的趋势

for (int j = 1; j <= i; j++) {

//上图可以看出很明显每行第一个都是1,那么我们就判断如果为1直接输出

if (j == 1) {

System.out.print(1+"   ");

}else{

//后边就是直接通过基础的编码来实现咱们发现的逻辑了

sum*=(i-(j-1));

sum/=(j-1);

System.out.print(sum+"   ");

}

}

System.out.println();

}

如上就是整个的杨辉三角的实现逻辑了,个人觉得其实比网上二维数组的要好理解一些,大家阔以研究研究。

相关文章

  • 程序员抢了数学家的饭碗

    【威哥说】没有接触过程序的同学,感觉代码距离我们很好遥远,可是你真正的学会了编程之后,你才知道,其实程序可是实现所...

  • 程序员抢了数学家的饭碗

    【威哥说】没有接触过程序的同学,感觉代码距离我们很好遥远,可是你真正的学会了编程之后,你才知道,其实程序可是实现所...

  • 2018年面试遇到的坎儿

    前言: 笔者小菜一枚,大学学的设计专业,毕业之后抢了程序员的饭碗来搞 Android 开发,自己知道底子薄弱,经常...

  • 离开与精进同时重要

    您必须在别人抢了你的饭碗之前首先打碎自己的饭碗

  • 妈妈请别抢了爸爸的“饭碗”

    在当今教育问题上,“丧偶式”教育问题越来越严重,孩子的教育问题全权由妈妈来承担,这不仅对自己是一种负担,而且不利于...

  • 你体验过欲哭无泪的感觉吗?

    有时候被领导"委以重任″,其实着实是被孤立了 !你"抢了″别人的工作,相当于抢了别人的饭碗,别人都被边缘掉了,少说...

  • 随手,抢了摄影师的饭碗

    转载自公众号:画学(huaxuea) 一位游客看到这一系列作品时 不禁感叹: 这拍照技术还不错 镜头焦距定得相当好...

  • 智能AI抢了钢琴陪练的饭碗?

    作者儿子正在演奏 今天想聊的是“陪娃……”这个事儿。 其实“陪”表明有一个主体,一个副体(陪伴方),在成人世界的陪...

  • 张一鸣抢了谁的饭碗?

    引子:今年是互联网盖棺定论之年。互联网的全部模式,穷尽起来有且只有三种:第一种,单边网络(Consumer-onl...

  • 我为什么不建议你写单元测试

    很明显,你已经抢了 Tester 的饭碗!你知道 bug 对于 Tester 意味着什么吗?这是 KPI 啊,是工...

网友评论

    本文标题:程序员抢了数学家的饭碗

    本文链接:https://www.haomeiwen.com/subject/utfiyttx.html