00:01
好了,那么接下来咱们继续再往下,从控制台输入一个正整数,计算该数的阶乘。该数的阶乘。来我们直接呢去新建一个文件,我们叫homework。三。这个题目呢,是这样一个题目啊。Public class homework3、public staticman。从控制台输入一个正整数啊,计算该数的阶乘。输入五就是五乘四乘三乘二乘一。那这个应该也是比较固定的一种编程模型,对吧?首先第一步你干啥呀,先解决一个问题,怎么从键盘上接收一个整数对不对啊,正整数啊,正整数,那java.u scanner是不是来一个java.scanner啊,然后system in,那接下来在这块呢,我们就直接。
01:15
调用它的对吧,那呢会输出一个什么呀数字。啊,会输入一个数字啊,这个呢,就代表等待用户输入一个整整数啊正整数,那输进来正整数之后呢,接下来干什么呀?哎,计算该数的。阶层啊,阶层,阶层是咱们以前数学里边的啊,你比如呃,你比如说五五的阶层,五的阶层,五的阶乘就是五,就是五乘四乘三乘二乘一八的阶乘就是从八开始。对吧,哎,八的阶乘,那八的阶乘,那就是从八开始呗,八。
02:00
7654321对吧,哎,这里面全是什么呀,星号呗,对不对,哎星号。型号啊。这样。那我觉得大家第二步是不是应该对先不用管乘法的事儿,乘法的事儿啊,先实现从什么呀,从八取到一。递减的方式取吧,是不是递减的方式啊取对不对,哎,递减的方式取,那这个时候呢,你就肯定是for循环呗,对吧,特类型I呢,等于几啊等于八呗,是不是,哎,然后I干啥呀。I干啥呀,A大于零呗,对不对,哎,然后I干啥减减你只能减减呀,你原先等于八八减减变成7654321嘛,哎,一再减减变成零,零大于零吗?零不再大于零,False就结束了,所以这个时候你可以保证你现在的这个数据啊,是从八取到一的啊,你能够写出这个。
03:07
那你这个就差不多了,Java c呢去编译一下,编译之后呢,Java去运行HOMEWORK3走你看。错了,走。我们在这儿呢,输进去一个八走。你看87654321对吧,哎,87654321,那么这块呢,你可以再输出一句话啊,请输入一个正整数对吧,那它输进去就行了啊,然后这块你输入的正整数是谁number呗来。接下来你把number放到这儿呗,对吧,I等于number呗,I大于零,I减减呗,是吧,那这样的话我们再来看编译一下我们这个程序,运行一下我们这个程序,输入一个正整数八走。87654321对不对,哎,那么接下来我们再往下再运行啊,输入一个五,那就54321呗。
04:01
对吧,那输入一个十呢,那十九八七六五四三二一呗,是不是你你最起码你先把这一步先给他做了,那无非接下来你的任务是什么,你的任务是成吗。对不对,成那成的话,你就可以在外边准备个结果,最后有个结果呀。是不是最后有个结果,结果结果结结割窝果结果结果不能等于零,各位啊,你这个初始值不能是零,初始值不能是零。啊,是零的时候,是零的时候,乘积最后是零。啊,所以这个给这个结果,这个初始值的时候,你给个一。结果初始值给一个一啊,就是结果的初始值。给一可以给个一啊,然后这块呢,你想你给个一的话,嗯,其实五乘四乘三乘二乘一,这个一就不用了。
05:04
这个一就不用了,所以你这个循环也没必要说循环到一可以大于一。行吧,Ii等于number呗,然后I大于一呗,那这样的话,它取出的值是不是就是十九八七六五四三二那个一就没了,对吧?哎,和这个结果相乘就行了。那么这个结果这块怎么办呢?结果成等呗对吧,成等谁呀A就完事了,最后把这个结果怎么着给他输出呗,对吧,结结勾我果结果。对吧,这是结果叫做计算结果是不是。啊,那来看,嗯,Java c呢,编一下homework3.java,然后Java去运行HOMEWORK3走,输入一个数吧,比如三吧,三的话应该是一乘二乘三,二三得六,应该是六吧,最后结果。计算结果是六,对不对,嗯。再来一个呢?对吧,是呢。
06:01
24。对不对,五呢。24乘五一百二。对不对,哎,五的集成就是一百二嘛,是不是你这样算就行了,好这块大家有什么问题吗。有没有什么疑问?就这个成等,你懂什么意思吗?成等的意思是结果等于什么呀?结果乘以I。它这个结果乘以I,乘完之后再付给这个结果。对吧,再付给这个结果,在下一次再循环的时候,又来拿过来一个I的这个这个这个个这个数,拿过来这个数之后,怎么着让之前那个那个结果再乘以这个I,然后呢,再把这个计算计算完的新结果再给这个变量。那再进入下一次循环的时候,我们是不是再取出这个I变量,取出I变量之后呢?这个I变量再和上一次的那个结果相乘,乘完之后再付给我们这个变量,是不是就相当于五乘完四之后有一个结果,这个结果付给了这个结果这个变量,然后紧接着怎么着啊,五乘四的这个结果是20 20再和下一次这个I再乘吗?
07:09
对不乘完之后,是不是这有一个结果,五乘四乘三有个结果啊,然后呢,基于这个结果再乘以二嘛。是不是,哎,五乘四乘三乘二,这个结果怎么着啊,哎,基于这个结果再去乘以一嘛,哎就这样一个一个情况啊,一个情况,那么当然这块如果你结果给个零,你试试对吧,你说你初始值给个零,那你完了,那你最后结果只能等于零对吧?零乘任数得零嘛,加上C编译加上运行来走100啊,走八零对吧,你这个就有问题了,所以你这块呢,你不能给零,你得给一个一,但你给一的话,那你就五乘四乘三乘二乘一,这个一就不用再乘了,对吧?因为你的结果本身就等于一嘛,你可以,哎让它循环到哎二就行了啊,所以是I大于一啊,I大于一,I减减啊,I大于一啊,是这样。好,这是这样一个题目啊。
我来说两句