***有帮助请点个赞谢谢!!!!!!!!!!!!***
1.实现1到n的累加和
package day05;
import java.util.Scanner;
/**
* 递归实现1到n的累加和
* @author 颜一_颜大帅哥
*
* @data 2024年7月24日下午12:46:11
*/
public class qiuhe {
public static void main(String [] args)
{
System.out.println("请输入n:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
System.out.println("累加和为:"+q(a));
}
public static int q(int n)
{
if(n==1)
return 1;
else
return n+q(n-1);
}
}
2.合并两个有序数组
package day07;
/**
* 2 合并两个有序数组
给定两个有序整数数组,nums1 和nums2 ,将nums2合并到nums1中,使得nums1成为一个有序数组
说明 : 初始化 nums1 和 nums2 的元素数量分别为 m 和 n
你可以假设nums1有足够的空间(空间大小大于或等于 m+n),来保存nums2中的元素
示例 :
输入 : nums1 = {1,2,3,0,0,0} m = 3;
nums2 = {2,5,6} n=3
输出 : {1,2,2,3,5,6}
* @author 颜一_颜大帅哥
*
* @data 2024年7月26日下午3:20:53
*/
public class Combine_arr {
public static void main(String [] args)
{
int [] nums1=new int [100];
nums1[0]=0;
nums1[1]=1;
nums1[2]=0;
nums1[3]=6;
nums1[4]=2;
int [] nums2={0,1,0,6,2};
combine(nums1,nums2);
paixu(nums1);
for(int i=0;i<c;i++)
{
System.out.println(nums1[i]);
}
}
static int c=0;
private static int[] nums1;
public static void combine(int [] arr1,int [] arr2)
{ //得到arr1有数据的下标a
int a=arr1.length-1;
for(int i=arr1.length-1;i>=0;i--)
{
if(arr1[i]!=0)
{
a=i;
break;
}
}
//arr2的值赋值给arr1
int b=arr2.length;
c=a+1+b;//要输出的位数
int d=0;
for(int i=a;i<c;i++)
{
if(d<=b-1)
{
arr1[i+1]=arr2[d];
d++;
}
}
}
public static void paixu(int [] arr)
{
for(int i=0;i<c;i++)
{
int min=i;
for(int j=i+1;j<c;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!=i)
{
int temp=0;
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
}
}
有帮助请点个赞谢谢!!!
3.验证是否为回文串
package day07;
/**
* 3 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写
说明 : 本题中,我们将空字符串定义为有效的回文串,和回文数一样,正读反读一样
示例 1
输入 : “A man , a plan , a canal : Panama”
输出 : true
示例 2
输入 : “race a car”
输出 : false
* @author 颜一_颜大帅哥
*
* @data 2024年7月26日下午4:41:23
*/
public class Huiwenstring {
public static void main(String [] args)
{
String a="A man , a plaz , a canal : Panama";
inspect(a);
}
public static void inspect(String n)
{
String b="";
String [] arr=n.split(" ");
for(int i=0;i<arr.length;i++)
{
b+=arr[i];
}
// System.out.println(b);
String c=b.toLowerCase();
// System.out.println(c);
char [] d=c.toCharArray();
int k=0;
for(int i=0;i<d.length;i++)
{
int e=d[i];
if(e>=48&&e<=57||e>=97&&e<=122)
{
d[k]=d[i];
k++;
}
}
String q="";
for(int i=k-1;i>=0;i--)
{
q+=d[i];
}
String p="";
for(int i=0;i<k;i++)
{
p+=d[i];
}
if(q.equals(p))
{
System.out.println("是回文");
}
else
System.out.println("不是回文");
}
}
4.将数组表示的值加1,再用数组输出
package day07;
/**
* 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一,
最高位数字存放在数组的首位,数组中每个元素只存储一个数字
你可以假设除了整数0之外,这个整数不会以 零 开头
(要考虑进位)
示例 1
输入 : {1,2,3}
输出 : {1,2,4}
解释 : 输入数组表示数字 123.
示例 2
输入 : {4,3,2,1}
输出 : {4,3,2,2}
解释 : 输入数组表示数字 4321.
* @author 颜一_颜大帅哥
*
* @data 2024年7月26日下午3:21:25
*/
public class Jia1 {
public static void main(String [] args)
{
int [] arr1={1,2,3,9};
jia1(arr1);
System.out.println("整数加1后的值为:"+a);
separate(a);
}
static int a=0;
//得到加1后的整数
public static void jia1(int [] arr)
{
for(int i=0;i<arr.length;i++)
{
a=a*10+arr[i];
}
a+=1;
}
//将加1后的整数分到数组里
public static void separate(int n)
{ int e=n;
int d=0;//计数整数位数
while(n!=0)
{
n/=10;
d++;
}//n变了
int [] arr2=new int [100];
int b=10;
int c=0;
//循环填入
for(int i=d-1;i>=0;i--)
{
arr2[i]=e%10;
e/=10;
}
//循环输出
for(int i=0;i<d;i++)
{
System.out.println(arr2[i]);
}
}
}
5.找出只出现一次的数
package day07;
/**
* 4 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现一次的元素
说明 : 你可以不使用额外空间来实现吗?
示例 1
输入 : {2,2,1}
输出 : 1
示例 2
输入 : {4,1,2,1,2}
输出 : 4
* @author 颜一_颜大帅哥
*
* @data 2024年7月26日下午3:20:33
*/
public class Onlyone {
public static void main(String [] args)
{
int [] arr1={0,-2,-3,-3,0};
find(arr1);
}
public static void find(int [] arr)
{
for(int i=0;i<arr.length;i++)
{
int b=0;
int a=arr[i];
for(int j=0;j<arr.length;j++)
{
if(arr[j]==a)
{
b++;
}
}
if(b==1)
{
System.out.println(a);
break;
}
}
}
}
有帮助请点个赞谢谢!!!
6.不使用额外数组空间移除元素
package day07;
/**
* 4 移除元素
给定一个数组 nums 和一个值 val 你需要原地移除所有数值等于val的元素,返回移除后数组的新长度,不要使用额外的数组空间
元素的顺序可以改变,你不需要考虑数组中超出新长度后面的元素
示例 1
给定 nums = {3,2,2,3}; val = 3;
函数应该返回新的长度 2 , 并且 nums中的前两个元素均为 2
你不需要考虑数组中超出新长度后面的元素
* @author 颜一_颜大帅哥
*
* @data 2024年7月26日下午4:14:33
*/
public class Remove {
public static void main(String [] args)
{
int [] nums={3,2,2,3};
int val=3;
remove(nums,val);
}
public static void remove(int [] arr,int n)
{
int a=0;
for(int i=0;i<arr.length;i++)
{
if(arr[i]!=n)
{
arr[a]=arr[i];
a++;
}
}
int b=a+1;
System.out.println("长度为:"+b);
for(int i=0;i<a;i++)
{
System.out.println(arr[i]);
}
}
}
7.输出最后一个单词的长度
package day07;
import java.util.Scanner;
/**
* 1 最后一个单词的长度
给定一个仅包括大小写字母和空格 ‘ ’ 的字符串 , 返回其最后一个单词的长度
如果不存在最后一个单词,请返回0
说明 : 一个单词是指由字母组成,但不包括任何空格的字符串
示例 :
输入 : “Hello World”
输出 : 5
* @author 颜一_颜大帅哥
*
* @data 2024年7月26日上午9:20:48
*/
public class Thelastlength {
public static void main(String [] args)
{
System.out.println("请输入一个字符串:");
Scanner scanner=new Scanner(System.in);
String z=scanner.nextLine();
String[] a=z.split(" ");
System.out.println("长度为:");
System.out.println(calculate(a));
}
public static int calculate(String [] n)
{
if(n.length==0)
{
return 0;
}
return n[n.length-1].length();
}
}
8.在数组中插入目标值
package day06;
import java.util.Scanner;
/**
* 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引,如果目标值不存在数组中,返回他将会被按顺序插入的位置
你可以假设数组中无重复元素
* @author 颜一_颜大帅哥
*
* @data 2024年7月25日下午7:12:51
*/
public class Insert {
public static void main(String [] args)
{
System.out.println("请输入要确定位置的数:");
Scanner scanner=new Scanner(System.in);
int z=scanner.nextInt();
System.out.println(insert(z));
}
public static int insert(int n)
{
int [] arr={1,3,5,6};
// for(int j=0;j<arr.length;j++)
// {
for(int i=0;i<arr.length;i++)
{
if(arr[i]==n)
{
return i;
}
if(arr[i]<n&&arr[i+1]>n)
{
return i+1;
}
if(arr[i]>n)
{
return i;
}
if(arr[arr.length-1]<n)
{
return arr.length;
}
}
return -1;
// }
}
}
有帮助请点个赞谢谢!!!
9.反转整数并输出
package day06;
/**
* 给出一个 32 位 的有符号整数,你需要将这个整数中每位上的数字进行反转
*/
import java.util.Scanner;
public class Reserve1 {
public static void main(String [] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
num1(num);
}
static int a=0;
static int b=0;
public static void num1(int n)
{
while (n!=0)
{
b=n%10;
a=a*10+b;
n=n/10;
}
System.out.println("反转后为:"+a);
}
}
10.斐波那契找到是第几位的数
package day06;
import java.util.Scanner;
/**
*声明一个方法,接收一个参数
判断传递的参数值再斐波那契数列的第几位上
如果不存在 打印 -1 , 如果存在 打印对应的位数
难点 : 如何算不存在?
大于上一位,小于当前位 说明不存在
*
*
*/
public class Fabonacci {
public static void main(String [] args)
{
System.out.println(f(4));
}
static long d=0;
public static long f(long n)
{
long a=1;
long b=1;
long c=1;
if(n==1)
{
return 1;
}
for(int i=3;true;i++)
{
c=a+b;
a=b;
b=c;
d=i;
if(c==n)
return d;
if(n>c&&n<(a+b))
return -1;
}
}
}
有帮助请点个赞谢谢!!!
11.给定一组成绩求平均分 最高分 最低分 总分
package dayo5_2;
public class grades {
public static void main(String [] args)
{
double[] scores = {55.5,65.8,78.4,99,100,95.4,65,98,78,90};
highest(scores);
lowest(scores);
sum(scores);
avarage(scores);
morethan80(scores);
}
public static void highest(double [] arr)
{
double a=0;
for(int i=0;i<arr.length;i++)
{
if(arr[i]>a)
a=arr[i];
}
System.out.println("最高分为:"+a);
}
public static void lowest(double [] arr)
{
double a=arr[0];
for(int i=1;i<arr.length;i++)
{
if(arr[i]<a)
a=arr[i];
}
System.out.println("最低分为:"+a);
}
public static void sum(double [] arr)
{
double a=0;
for(int i=0;i<arr.length;i++)
{
a+=arr[i];
}
System.out.println("总分为:"+a);
}
public static void avarage(double [] arr)
{
double a=0;
for(int i=0;i<arr.length;i++)
{
a+=arr[i];
}
double b=a/arr.length;
System.out.println("平均分为:"+b);
}
public static void morethan80(double [] arr)
{
int a=0;
for(int i=0;i<arr.length;i++)
{
if(arr[i]>80)
{
a++;
}
}
System.out.println("大于80分的人有:"+a+"个");
}
}
有帮助请点个赞谢谢!!!
12.简单计算器(switch实现)
package dayo5_2;
import java.util.Scanner;
/**
* 简单模拟计算器功能
*
* 只需要考虑两个数的 + - * / %
*
* 可以使用switch完成
*
* 第一次输入 和 第三次输入 是 数字
*
* 第二次输入 是 运算符
*
*/
public class jisuanqi {
public static void main(String [] args)
{
Scanner scanner=new Scanner(System.in);
int q=scanner.nextInt();
String w=scanner.next();
int e=scanner.nextInt();
calculator(w,q,e);
}
public static void calculator(String n,int a,int b)
{
switch(n)
{
case "+":
int c=a+b;
System.out.println("="+c);
break;
case "-":
int d=a-b;
System.out.println("="+d);
break;
case "*":
int e=a*b;
System.out.println("="+e);
break;
case "/":
int f=a/b;
System.out.println("="+f);
break;
case "%":
int g=a%b;
System.out.println("="+g);
}
}
}
13.冒泡排序
package package1;
public class maopao1 {
public static void main(String [] args)
{
int [] arr1={1,4,3,6,2,7,8,5,9};
Bubblesort(arr1);
for(int i=0;i<arr1.length;i++)
{
System.out.println(arr1[i]);
}
}
public static void Bubblesort(int [] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1;j++)
{
if(arr[j]>arr[j+1])
{
int temp=0;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
有帮助请点个赞谢谢!!!
14.判断一个正数是否是回文数
package day06;
/**
* 判断一个正数是否是回文数,回文数是指正序(从左到右) 和 倒叙(从右到左) 读 都是一样的整数
*/
import java.util.Scanner;
public class Huiwen1 {
public static void main(String [] args)
{
Scanner scanner=new Scanner(System.in);
int z=scanner.nextInt();
System.out.println(h(z));
System.out.println(a);
}
static int a=0;
public static Boolean h(int n)
{
int b=0;
int c=n;
if(n<0)
{
return false;
}
else if(n==0)
{
return true;
}
else if(n>0)
{
while(n!=0)
{
b=n%10;
a=a*10+b;
n=n/10;
}
if(a==c)
{
return true;
}
}
return false;
}
}
15.求n的阶乘
package day05;
import java.util.Scanner;
public class jiecheng {
public static void main(String [] args)
{
System.out.println("请输入要求的数:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
System.out.println("该数的阶乘为:"+j(a));
}
public static int j(int n)
{
if(n==1)
return 1;
else
return n*j(n-1);
}
}
有帮助请点个赞谢谢!!!
16.求第n位的斐波那契数
package day05;
import java.util.Scanner;
public class Fabonacci1 {
public static void main(String [] args)
{
System.out.println("请在输入斐波那契中的位数:");
Scanner scanner=new Scanner(System.in);
int f=scanner.nextInt();
System.out.println("第"+f+"位为:"+F(f));
}
public static int F(int n)
{
if(n==1||n==2)
return 1;
else
return F(n-1)+F(n-2);
}
}
17.数组反转并输出
package dayo5_2;
import java.util.Scanner;
/**
* 数组反转
比如 有一个数组为 1,2,3,4 反转之后 得到 4,3,2,1
不能使用额外数组空间
* @author 颜一_颜大帅哥
*
* @data 2024年7月24日下午6:32:17
*/
public class arr2 {
public static void main(String [] args)
{
System.out.println("请输入数据的个数:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int [] arr1=new int [a];
System.out.println("请输入每一个数据的值,回车确定:");
for(int i=0;i<a;i++)
{
arr1[i]=scanner.nextInt();
}
System.out.println("反转后为:");
turn(arr1);
}
public static void turn(int [] arr)
{
for(int i=0;i<arr.length/2;i++)
{
int b=0;
b=arr[i];
arr[i]=arr[arr.length-(i+1)];
arr[arr.length-(i+1)]=b;
}
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
}
}
有帮助请点个赞谢谢!!!
18.数组求解杨辉三角
package dayo5_2;
import java.util.Scanner;
public class arr1 {
public static void main(String [] args)
{
System.out.println("前多少行?:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
sanJiao(a);
}
public static void sanJiao(int a)
{
int [][] arr=new int [a][a];
for(int i=0;i<a;i++)
{
for(int j=0;j<=i;j++)
{
if(j==0||j==i)
{
arr[i][j]=1;
}
else
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(int i=0;i<a;i++)
{
for(int j=0;j<=i;j++)
{
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
19.原地删除数组中的重复元素
package day06;
/**
* 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度
* @author 颜一_颜大帅哥
*
* @data 2024年7月25日下午7:14:22
*/
public class Deletethesame {
public static void main(String [] args)
{
int [] nums={1,1,2,8,8,28,28,72,72};
b=nums.length;
delete(nums);
paixu(nums);
int l=b;
for(int g=0;g<l;g++)
{
System.out.println(nums[g]);
}
}
public static void paixu(int [] arr)
{
for(int i=0;i<arr.length-1;i++)
{
int min=i;
for(int j=i+1;j<arr.length;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!=i)
{
int temp=0;
temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
}
static int b=0;
public static void delete(int [] arr)
{
for(int i=0;i<arr.length;i++)
{
int a=arr[i];
for(int j=i+1;j<b;j++)
{
if(a==arr[j])
{
for(int k=j+1;k<b;k++)
{
arr[k-1]=arr[k];
}
b-=1;
}
}
}
}
}
有帮助请点个赞谢谢!!!