Java期末复习暨学校第三次上机课作业:
(1):掌握java中各种实现循环的语句。
第一题:
(1):定义两层循环,第一层循环,i从1开始逐步递增到10,
(2):第二层循环,先定义一个变量flag,赋值为1。用于计算每个数的阶乘,阶乘是每个数不断乘以小于等于自己的数,直到1。所以j的取值范围是j <= i,通过flag *= j,计算出每个数的循环。
(3):第二层循环将每个数的阶乘计算完以后,再通过sum累加,计算出最终的结果。
输出结果:
第二题:
定义两层循环:i为左边的乘数,j为右边的乘数,j不能比i大,所以第二层循环的条件为j <= i,j随着i增大而增大,j走完一次循环,i就增大1,每一行就向右延长一个式子。
输出结果:
第三题:
定义两层循环
(1):第一层循环用于遍历1-1000所有的数,第二层循环用来找这些数的因子,因为因子肯定比这些数要小,所以限制条件为:j < i,如果i % j == 0,说明j是i的因子,定义一个sum变量把因子j累加起来。
(2):当第二层循环把第一层循环给出的某个数的因子的和累加完成以后,用if语句判断如果和sum等于这个数i,则i是完数。
输出结果:
第四题:
(1):先定义一层循环,遍历100-0所有的数,因为是最大的五个数,所以要用--运算符,倒着来,有种逆向思维的感觉。
(2):再用if语句判断i是否能同时被3和4整除,如果可以则打印i,count++。每到一个符合条件的数,count就会+1,当count累加到5的时候,用break结束循环。
输出结果:
第五题:
(1):定义一个while循环,n用于计数,代表当前的整数。条件设置为sum <= 8888,再n++,sum累加。
(2):当循环结束时,sum的值已经超过了8888,此时n的值比满足条件的最大整数大1,因为sum要大于8888才会结束循环。
输出结果: