1>在键盘上输入数n,编程计算sum=1!+2!+…+n!的结果。
import java.util.*;
public class Jiecheng {
public static void main(String[] args)
{
System.out.print("请输入您想求1到多少的阶乘之和:"+"\n");
int sum=0;
int s=1;
int n;
Scanner reader=new Scanner(System.in);
n=reader.nextInt();
int i;
for(i=1;i<=n;i++)
{
s=s*i;
sum=sum+s;
}
System.out.println("1到"+n+"的阶乘之和为:"+"\n");
System.out.println("1!+2!+..."+n+"!="+sum);
}
}
参考答案系列:
import java.util.Scanner;
/**
* 求出1到n的阶乘之和
* */
public class E21Jiecheng {
public static void main(String[] args) {
System.out.print("请输入求阶乘的数字n:"); Scanner reader=new Scanner(System.in);
int n=reader.nextInt();
int sum=0;
int s=1;
for(int i=1;i<=n;i++) {
s=s*i;
sum=sum+s; }
System.out.println("1到"+n+"的阶乘之和为:" +sum); }
}
2>找出4×5矩阵中值最小和最大元素,并分别输出其值及其所在的行号和列号。提示:
(1)使用数组保存矩阵数据,矩阵数据可以从键盘输入,也可以在程序中直接初始化。
(2)考虑两种情况,情况一:矩阵中最小值和最大值都唯一;情况二:矩阵中最小值和最大值不唯一。
这两种情况实现哪一种情况都可以。
public class JuzhenMaxMin {
public static void main(String[] args)
{
int[][] shuzu= {
{
6,2,3,4,5},{
4,5,6,7,8},{
7,8,9,1,2},{
10,8,9,7,2}};
int hMax=0,hMin=0;
int lMax=0,lMin=0;
int max=shuzu[0][0];
int min=shuzu[0][0];
for(int i=0;i<shuzu.length;i++)
{
for(int j=0;j<shuzu[i].length;j++)
{
if(max<shuzu[i][j]) {
max=shuzu[i][j];hMax=i+1;lMax=j+1;}
if(min>shuzu[i][j]) {
min=shuzu[i][j];hMin=i+1;lMin=j+1;}
}
}
System.out.println("最大值是:"+max+" "+"行号:"+hMax+" "+"列号:"+lMax);
System.out.println("最小值是:"+min+" "+"行号:"+hMin+" "+"列号:"+lMin);
}
}
参考答案系列:
/** * E22Matrix * 找出4×5矩阵中值最小和最大元素,并分别输出其值及其所在的行号和列号。 * 矩阵中最小值和最大值都唯一 */
public class E22Matrix {
public static void main(String[] args) {
int[][] shuzu= {
{
1,2,3,4,5},{
10,9,8,7,6},{
20,19,18,17,16},{
11,12,13,14,15}};
int hMax=0,hMin=0;
int lMax=0,lMin=0;
int max=shuzu[0][0];
int min=shuzu[0][0];
for(int i=0;i<shuzu.length;i++) {
for(int j=0;j<shuzu[i].length;j++) {
if(max<shuzu[i][j]) {
max=shuzu[i][j];
hMax=i;
lMax=j;
}
if(min>shuzu[i][j]) {
min=shuzu[i][j];
hMin=i;
lMin=j;
}
}
}
System.out.println("最大值是:"+max+" "+"行号:"+hMax+" "+"列号:"+lMax);
System.out.println("最小值是:"+min+" "+"行号:"+hMin+" "+"列号:"+lMin);
}
}
/** * E23Matrix * 找出4×5矩阵中值最小和最大元素,并分别输出其值及其所在的行号和列号。 矩阵中最小值和最大值不唯一 */
public class E23Matrix {
public static void main(String[] args) {
int[][] shuzu = {
{
1, 1, 1, 1, 1 }, {
1, 1, 1, 1, 1 }, {
1, 1, 1, 1, 1 }, {
1, 1, 1, 1, 1 } };
int max = shuzu[0][0];
int min = shuzu[0][0];
// 1.遍历数组先求出最大值/最小值
for (int i = 0; i < shuzu.length; i++) {
for (int j = 0; j < shuzu[i].length; j++) {
if (max < shuzu[i][j]) {
max = shuzu[i][j]; }
if (min > shuzu[i][j]) {
min = shuzu[i][j];
}
}
}
// 2.遍历数组存储最大值/最小值,以及行号列号。
int[][] maxArray = new int[20][2];
int[][] minArray = new int[20][2];
int maxNumber = 0;
int minNumber = 0;
for (int i = 0; i < shuzu.length; i++) {
for (int j = 0; j < shuzu[i].length; j++) {
if (max == shuzu[i][j]) {
maxArray[maxNumber][0] = i; maxArray[maxNumber][1] = j; maxNumber = maxNumber + 1;
}
if (min == shuzu[i][j]) {
minArray[minNumber][0] = i; minArray[minNumber][1] = j; minNumber = minNumber + 1; }
}
}
// 输出打印 S
ystem.out.println("该数组有" + maxNumber + "个最大值,最大值是:" + max);
System.out.println("该数组最大值的行号和列号分别是:");
for (int i = 0; i < maxNumber; i++) {
System.out.println(" 行号:" + maxArray[i][0] + " " + " 列号:" + maxArray[i][1]); }
System.out.println("该数组有" + minNumber + "个最小值,最小值是:" + min);
System.out.println("该数组最小值的行号和列号分别是:");
for (int i = 0; i < minNumber; i++) {
System.out.println(" 行号:" + minArray[i][0] + " " + " 列号:" + minArray[i][1]); }
}
}