实验二数组与流程控制--Java

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]);		}
	}
}

Guess you like

Origin blog.csdn.net/weixin_45800653/article/details/107955102