【感谢胡光老师提供题目】
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的值
}
}