C03-Java同步实践加强班第4周上机任务

来源:互联网 发布:自动排班软件那个好 编辑:程序博客网 时间:2024/06/01 09:25

【感谢胡光老师提供题目】

回到C03-Java同步实践加强班学习安排


1. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。

完数例如: 
  6=1+2+3  
  28=1+2+4+7+14 
  496=1+2+4+8+16+31+62+124+248 
  8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064 
参考代码:

package hu;public class TestComNum {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubprintComNum(1000);}static void printComNum(int n){}}

2. 对于一个大于3位数的任意整数,输出其降序数。例如,整数82319,则其降序数是98321.

算法提示:将整数的各位数分解到一维数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。

package hu;public class TestSort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubsort(82319);}static void sort(int n){}}

3.将二维数组中值最大的元素和左上角元素对调,然后将值最小的元素与右下角元素对调。

例如:
1456
72 10 11
98 12 3

对调后结果:
12456
72 10 11
9 8 3 1

package hu;public class TestNewMatrix {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[][] a={{1,4,5,6},{7,2,10,11},{8,9,12,3}};printMatrix(a);//按二维方式输出数组printNewMatrix(a);//对调后输出数组}static void printMatrix(int[][] a){}static void printNewMatrix(int[][] a){}}

4. 用二维数组表示矩阵,实现矩阵乘法。如C=A*B,要考虑矩阵相乘的规则,即A矩阵和B矩阵是任意的,C矩阵的产生是自动的(C的行数和列数要自动判断生成?怎样得到C矩阵的的行数和列数?)
package hu;public class TestMatrixPlus {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[][] a={};//自己定义矩阵int[][] b={};//自己定义矩阵printMatrix(a,b);}static void printMatrix(int[][] a,int[][] b){//1.要判断矩阵能否相乘,能相乘继续,不能相乘给出提示为什么不能相乘//2.得到C矩阵的行数和列数,以产生C矩阵//3.输出结果矩阵C的值}}