1.求1+2!+3!+...+20!的和(注意用long计算)
class Dome1{
public static void main(String[] args){
long sum=0;
long j=jeiCheng(sum,20);
System.out.print("sum="+j);
}
public static long jeiCheng(long sum,int x){
long jie=1;
for (int i=1;i<=x;i++ )
{
jie*=i;
sum+=jie;
}
return sum;
}
}
2.创建数组,存储5个double类型的数据,赋值,并打印数据中的值。
import java.util.Scanner;
class Dome16{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
double[] arr=new double[5];
for(int i=0;i<arr.length;i++){
System.out.print("请输入第("+i+")个数:");
arr[i]=sc.nextInt();
}
peintArray(arr);
}
public static void peintArray(double[] arr){
System.out.print("你输入的数分别为:");
for(int i=0;i<=4;i++){
System.out.print(arr[i]+" ; ");
}
}
}
3.获取某个数组中的最小值【两种方法】
//第一种
class Dome20{
public static void main(String[] args){
int [] arr={10,5,12,4,2,7,9};
minArray(arr);
System.out.print(arr[0]);
}
public static void minArray(int [] arr){
int temp=0;
for (int j=0; j<arr.length;j++ )
{
for(int i=j+1;i<arr.length;i++){
if(arr[j]>arr[i]){
temp=arr[j];
arr[j]=arr[i];
temp=arr[j];
}
}
}
}
}
//第二种方法
class Dome03{
public static void main(String[] args){
int [] arr={10,5,12,4,2,7,9};
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
arr[j]+=arr[i];
arr[i]=arr[j]-arr[i];
arr[j]=arr[j]-arr[i];
}
}
System.out.print(arr[0]);
}
}
.利用选择排序对数据进行降序排序
class Dome21{
public static void main(String[] args){
int[] arr={12,45,65,3,7,98,1};
System.out.print("排序为:");
for(int i=0;i<arr.length;i++){
for (int j=i+1;j<arr.length ;j++ )
{
if (arr[i]<arr[j])
{
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
System.out.print(arr[i]+" ,");
}
}
}
5.定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。
import java.util.Scanner;
class Dome5
{
public static void main(String[] args){
int[] arr=new int[5];
inArray(arr);
meanArray(arr);
}
public static void inArray(int[] arr){
for (int i=0;i<arr.length ;i++ )
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入("+(char)(65+i)+")同学的成绩:");
arr[i]=sc.nextInt();
}
}
public static void meanArray(int[] arr){
int sum=0,min=0,max=0;
double mean=0;
System.out.print("分数从高到底为:");
for (int i=0; i<arr.length;i++ )
{
for (int j=i+1;j<arr.length ;j++ )
{
if (arr[i]<arr[j])
{
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
System.out.print(arr[i]+" ");
sum+=arr[i];
mean=sum/arr.length;
min=arr[0];
max=arr[arr.length-1];
}
System.out.println("\r\n"+"总分为:"+sum);
System.out.println("平均分为:"+mean);
System.out.println("最高分数为:"+min);
System.out.println("最低分数为:"+max);
}
}
6.利用选择 冒泡 插入排序的方式将数组 int[] arr = {56, 72, 89, 77, 103, 20}; 进行降序排序
//选择
class Dome21{
public static void main(String[] args){
int[] arr = {56, 72,89, 77, 103, 20};
System.out.print("排序为:");
for(int i=0;i<arr.length;i++){
for (int j=i+1;j<arr.length ;j++ )
{
if (arr[i]<arr[j])
{
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
System.out.print(arr[i]+" ,");
}
}
}
//冒泡
class Dome06
{
public static void main(String[] args)
{
int[] arr = {56, 72,89, 77, 103, 20};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]<arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
printArray(arr);
}
public static void printArray(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
}
7. 在数组中int[] arr = {56, 45, 66, 24, 87, 91}; 利用二分法查找的方式 查找元素91。
class Demo7
{
public static void main(String[] args)
{
int[] arr = {3,7,5,8,1,6};
print(arr);
sort(arr);
print(arr);
int index = findIndex(arr,91);
System.out.println(index);
}
public static void sort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
public static int findIndex(int[] arr,int value){
int start = 0;
int end = arr.length-1;
int key = (start+end)/2;
while(arr[key] != value){
if(value<arr[key]){
end = key-1;
}else if(value>arr[key]){
start = key+1;
}
if(start>end){
return -1;
}
key = (start+end)/2;
}
return key;
}
public static void print(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
}