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

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

回到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 stub
		printComNum(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 stub
		sort(82319);
	}
	static void sort(int n){
		
	}
}

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

例如:
1 4 5 6
7 2 10 11
9 8 12 3

对调后结果:
12 4 5 6
7 2 10 11
9 8 3 1

package hu;
public class TestNewMatrix {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[][] 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 stub
		int[][] a={};//自己定义矩阵
		int[][] b={};//自己定义矩阵
		printMatrix(a,b);
	}
	static void printMatrix(int[][] a,int[][] b){
		//1.要判断矩阵能否相乘,能相乘继续,不能相乘给出提示为什么不能相乘
		//2.得到C矩阵的行数和列数,以产生C矩阵
		//3.输出结果矩阵C的值
	}


}






你可能感兴趣的:(c,算法,String,Class,任务)