JAVA题目

[java][代码实例]一些题目练习 1. 【问题描述】 从键盘输入一行英文字符串,只统计字符串中出现的每个英文字母的个数。大小写字母算相同的字符,不做区分,例如a和A,算相同字符。 【输入形式】 输入一行英文字符串。 【输出形式】 以合适的形式输出每个英文字母出现的次数,没有出现的字母,不输出次数 【样例输入②】 this is a pen,that is a circle. 【样例输出②】 (A)Num=3 ©Num=2 (E)N... 阅读详情

在这里插入图片描述

在这里插入图片描述

public class Practice02 {
    public static void main(String[] args) {
        int count = 0;  //含数字4的个数
        int num = 0; //一共多少数
        for (int i = 10000; i <= 99999; i++) {
            if(i%10==4 | i%100/10==4 | i%1000/100==4 | i/1000%10==4 |i/10000==4){
                count += 1;
            }
            num += 1;
        }
        System.out.println("最多一共可发出"+(num-count)+"张");
    }

在这里插入图片描述

public class Practice03 {
    public static void main(String[] args) {
        //用字母表顺序表示牌的花色
        //A 2 3 4 5 6 7 8 9 10 J Q K
        //a b c d e f g h i j k l m
        int count = 0; //一共出现牌型组合数
        for (int a = 0; a <= 4; a++) {
            for (int b = 0; b <= 4; b++) {
                for (int c = 0; c <= 4; c++) {
                    for (int d = 0; d <= 4; d++) {
                        for (int e = 0; e <= 4; e++) {
                            for (int f = 0; f <= 4; f++) {
                                for (int g = 0; g <= 4; g++) {
                                    for (int h = 0; h <= 4; h++) {
                                        for (int i = 0; i <= 4; i++) {
                                            for (int j = 0; j <= 4; j++) {
                                                for (int k = 0; k <= 4; k++) {
                                                    for (int l = 0; l <= 4; l++) {
                                                        for (int m = 0; m <= 4; m++) {
                                                            if (a+b+c+d+e+f+g+h+i+j+k+l+m==13){  //每个人当得到13张牌
                                                                count++;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        System.out.println("一共出现的种数有:" + count);
    }
}

初始化两个int[100]的数组,一个值全为0,一个值全为1,将值为1的数组的下标为21到30的值复制给值为0的组,并输值为0的组,用空格分隔,如0 0 0 0 1 1 1 1 0 0 0 0

public class Practice04 {
    public static void main(String[] args) {
        int[] a = new int[100];
        int[] b = new int[100];
        for (int i = 0; i < 100 ; i++) {
            a[i] = 0;
            b[i] = 1;
            System.arraycopy(b,21,a,21,10);
            System.out.print(a[i]+"\t");
        }
    }
}

定义一个Vector,并添加一个字符串 abc 一个整数 1 一个字符串数组{“abc”,”efg”,”ijk”},输出这些值,用空格分隔如 abc 1 abc efg ijk

public class Practice05 {
    public static void main(String[] args) {
        String Vector[] = {null,null,"abc","efg","ijk"};
        String a = "abc";
        int b = 1;
        for (int i = 0; i < Vector.length; i++) {
            Vector[0] = a;
            Vector[1] = Integer.toString(b);
            System.out.print(Vector[i]+"\t");
        }
    }
}

有N级楼梯,每次可以上一级或两级,
问有多少总方法走到第N级
比如,只有两级楼梯,就有两种走法,1+1 2
比如,有3级楼梯,1+1+1 1+2 2+1

import java.util.Scanner;
public class Practice06 {
    static int count(int stair){
        if(stair <= 0){
            return 0;
        }
        if(stair == 1 ){
            return 1;
        }
        if(stair == 2){
            return 2;
        }
        return count(stair-1) + count(stair-2);
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入阶梯数:");
        int stairs = in.nextInt();
        System.out.println("\n共有"+ count(stairs) +"种走法");
    }
}

我们都知道:1+2+3+ … + 49 = 1225。现在要求你把其中两个不相邻的加号变成乘号,
使得结果为 2015。
例如: 1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。
请你寻找所有可能的答案,并把前面的两个数字输出,如上面的就是输出(10 27)。

public class Practice08 {
    public static void main(String[] args) {
        for (int i = 1; i < 48; i++) {
            for (int j = i+2; j < 49; j++) {
                if (1225 - i - j - (i+1) - (j+1) + i*(i+1) + j*(j+1) == 2015) {
                    System.out.println(i +"\t" + j);
                }
            }
        }
    }
}

要求用递归实现
编写一个程序,输入一个数字 ,输出它的阶乘 (N!)。
5!= 54321 = 120。
当我们输入数字5时,输出一个120。
如:
输入:5
输出:120

普通方法:
import java.util.Scanner;
public class Practice09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字(1-10):");
        int num = sc.nextInt();
        int i = 1;
        int fac = 1;
        while(i <= num){
            fac *=i;
            i++;
        }
        System.out.println(fac);
    }
}

递归:
import java.util.Scanner;
public class Practice09 {
    public static long fact(int n){
        if (n<1){
            return 1;
        }else {
            return n * fact(n-1);
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字(1-10):");
        int num = sc.nextInt();
        System.out.println(fact(num));
    }
}

在这里插入图片描述
我的函数就是将n个从源柱移到目标柱(也就是实现从1移到3),那它的以此类推是什么?就是将n-1个移到中间柱上(由于这个函数就能将n个从源移到目标柱,所以n-1个也可以将给它来移,至于它是怎么移的,我不用关心),再将第n移到目标柱上,再将中间柱上的n-1个移到目标柱上。
第二,那它的退出条件是什么?极端情况下,n只有一个了,直接移到目标柱。

public class Practice10 {
    static String zz[] = {"1", "2", "3"};

    static void Move(int n, String s, String d) {
        if (n == 1) {
            System.out.println(s + "--->" + d);
            return;
        }
        String zjz = "";
        for(int i=0;i<zz.length; i++){
            if(zz[i] !=s && zz[i] !=d){
                zjz = zz[i];
            }
        }
        Move(n-1, s, zjz);
        System.out.println(s + "--->" + d);
        Move(n-1, zjz, d);
    }
    public static void main(String[] args) {
        Move(3, zz[0], zz[2]);
    }
}

在这里插入图片描述
搞清楚两个问题:
1 以此类推是什么?就是当前这一步和下一步的关系
2 结束条件是什么?

我要写个函数实现求开了多少天和发了多少金牌。就是求前一天发了多少金牌,再加上今天发的金牌(第N天发了多少呢,就是 N枚 + (总的-到前一天已经发掉了的)* 七分之一)。
这里和这前有点不同的地方就是需要假定开了几天,可以用循环从2开始,这个不知道如何写退出条件。改成假定有M块金牌,M从1开始

第N天发完后剩下的金牌((M-N)* 6/7)给第N+1天
退出条件是 M==N

由于M=1时,第一天正好是1块,所以从2块开始

public class Practice11 {
    public static void main(String[] args) {
        for(int i=1;i<Integer.MAX_VALUE;i++){
            int n = Fn(1, i);
            if(n >0 ){
                System.out.println("开了" + n +"天发了" + i + "块!");
            }
        }
    }
    static int Fn(int n, int M){
        if(n == M){
            return n;
        }
        int y = (M-n) % 7;
        if(y != 0){
            return -1;
        }
        return Fn(n+1, (M-n) * 6 / 7);
    }
}

要求用递归实现
输入一个N个长度的字符串,如abc,将它反转后输出,如cba。
输入:abcde
输出:edcba

import java.util.Scanner;
public class Practice12 {
    public static String strings(String n){
        char []array = n.toCharArray();
        String words1 = "";
        for (int i = array.length-1; i >=0 ; i--) {
            words1+=array[i];
        }
        System.out.println(words1);
        return words1;
    }
    public static void main(String[] args) {
        System.out.println("请输入字符串:");
        Scanner sc = new Scanner(System.in);
        String words = sc.next();
        strings(words);
    }

要求用递归实现
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……(从第3位开始,每一位数字都是前两位数字之和)
在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
要求输入N,输出第N位数字。如:
输入:8
输出:21

import java.util.Scanner;
public class Practice13 {
    public static Integer fs(int n){
        if (n > 0 && n < 3){
            return 1;
        }else {
            return fs(n-2)+fs(n-1);
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入N:");
        int i = sc.nextInt();
        System.out.println(fs(i));
    }
}
JAVA经典算法题目 知识的广度来自知识的深度,学习如果不成体系那是多可怕的一件事儿,希望我们在未来的学习道路上坚守初心,不要给自己留下遗憾,以自己喜欢的方式生活,做自己喜欢做的事,宠爱自己,做一个独一无二的自己! 对于文章中出现的任何错误请大家批评指出,会及时做出修改! 有任何想要讨论和学习的问题可联系我:cittaksana@qq.com JAVA经典算法题目 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: . 阅读详情

相关推荐

Java 笔试:常见题目总结

答案:题目中的第一行代码被编译器在编译时优化后,相当于直接定义了一个”abcd”的字符串,所以,上面的代码应该只创建了一个String对象。附加:对于如下代码:String s1 = “a”;String s2 = s1 + “b”;String s3 = “a” + “b”;System.out.println(s2 == “ab”);System.out.println(s3 == “ab”);第一条语句打印的结果为false,第二条语句打印的结果为true,这说明javac编译可以对字符串常量直接相加

2401_87022472的博客 1191

Java语言程序设计 异常练习(二)

1.校验年龄格式: 编写一个信息录入程序,获取用户输入的姓名和年龄。如果用户输入的年龄不是正确的年龄数字(如0.5),则抛出异常并让用户重新输入;如果年龄正确,则打印用户输入的信息。 代码如下: package practice; import java.util.*; public class practice2 { public static void main(String[] args) { boolean b = true; Scanner input = new Scan

qq_54190116的博客 1143

Java程序设计编程题目

Java程序设计编程题目

qq_44231628的博客 3339

java练习01

package Chapter01; public class Practice01 { public static void main(String[] args) { System.out.println(“大家好!”); System.out.println(“Nice to meet you!”); Student stu = new Student(); stu.speak(“We are students”); } } class Student { public void speak(Stri

Suntrumpl的博客 219

【论文精读】Latent Diffusion

Latent Diffusion

weixin_44934783的博客 4476

如何使用C#自带的GDI+双缓冲类BufferedGraphics实现双缓冲功能

小白摸索着编写一个上位机界面,将遇到的问题及解决方法记录下,以供后来的小白使用哈。这篇文章解决的问题是在绘图时候的闪烁问题。其中网上有些介绍的设置控制方式controlstyle的方法,这个方法我的理解是比较适合于在一个完整的窗口当中绘图。如果要在一个窗口当中的内部容器或者控件内画图的话就不太适合,通常按照前述的方法设置后没有任何效果。对于在窗口内部的绘图的来说,比较有效的方法是在内存当中开辟一块

z20110411的博客 4794

Java实验三

1、编程求 1!+2!+3!+…+20! 的值并显示,要求使用方法完成。 public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int x=20; int y=fun(x); System.out.println(y); } public static int fun(int x) { int sum=0; int a=1; for(in.

weixin_54209377的博客 471

基于JavaFX的Http Server模拟器

源码地址 GitHub - DayRain/http-server-simulator: http server 模拟器 功能描述 HttpServer模拟器,通过简单的配置即可模拟第三方服务端,用于接收和响应HTTP请求。 支持同时模拟多个服务、动态添加接口、动态配置返回值。 使用说明 运行 exe运行 编译代码后,点击exe直接运行 代码运行 下载好代码后,运行主类ApplicationStarter即可 新建服务 主界面如下 点击 文件-新建 创建新的服务 ...

小楼夜听雨的博客 2534

Java程序 实验小全

Java程序中的main方法声明中的参数类型是一个字符串数组,运行时,存放接收的参数,和C语言不同,第一个参数存放在下标为0的位置,第二个参数存放在下标为1的位置,其它的一次类推。下面的程序说明了参数的应用。 public class TestMainParameter { public static void main(String[] args) { //下面的循环,逐个输出数组args的每个元素 for(String str:args ){...

wangprince2017 2480

SAP SD核心流程解析:从销售订单到财务结算的实战指南

本文深入解析SAP SD模块从销售订单到财务结算的核心流程,重点剖析了销售订单中的行项目类别如何作为流程的“总开关”,决定了后续交货、开票及财务集成的走向。文章结合实战案例,详细拆解了正常销售、退货、第三方销售、寄售等典型流程的配置要点与国内化适配方案,并阐述了SD与财务模块集成的关键连接点,为顾问和用户提供了一份全面的实战指南。

weixin_29250403的博客 426

一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值!

信号插值在数字信号处理中经常被使用,但“插值”背后究竟发生了什么,却常被忽略。插0、插原值、线性插值看似只是不同的实现方式,实则对应着完全不同的频域效应与滤波特性。本文将结合公式与MATLAB仿真,深入剖析插0、插原值与线性插值三种典型策略的本质区别。

m0_66360845的博客 918

【java学习笔记】

java学习笔记

- 273

29、网络支持技术:CDN、覆盖网络与无标度网络解析

本文详细解析了CDN路由方式与性能指标,探讨了覆盖网络与无标度网络的特性及其在云计算和现代网络中的应用。文章分析了CDN的关键技术与挑战,介绍了覆盖网络与小世界网络的基本原理,并深入讨论了无标度网络的构建算法、性能优化策略以及在多个领域的应用案例。最后,文章展望了未来网络技术发展趋势与无标度网络的结合潜力。

night的博客 89

Java入门典型题目解析

本文介绍了8个Java入门编程题目及实现代码,包括经典的Hello World程序、计算两数之和、判断素数、九九乘法表、数组排序、字符串反转、斐波那契数列等基础练习。每个题目都提供了完整的代码示例和详细解析,帮助初学者掌握Java基本语法,如变量声明、循环控制、数组操作和字符串处理等核心概念。这些典型题目适合Java新手巩固基础编程能力,为后续开发打下坚实基础。文章最后还附有参考文献和互动建议。

xuanxuan1235的博客 1172

NTN(三) Timing

这篇看下k_offset和k_mac,如38.300所述,k_offset是配置的调度偏移量,需要大于或等于service link RTT和Common TA之和;k_mac 是配置的偏移量,需要大于或等于 RP 和 gNB 之间的 RTT。 相关参数会通过RRC层NTN-config配置,其中的cellSpecificKoffset-r17和kmac-r17主要用于各种Timing场景的偏移。 kmac:如果DL和UL frame timing 在 gNB端未对齐,网络端

asd199086的博客 4828

ADT MCP Server 把 ABAP 开发带进 Agent 模式

今天讨论 ADT MCP Server,不能只把它看成 Visual Studio Code 里多出来的一个开关。它真正有意思的地方,在于它把 ABAP 后端开发里那些原本需要手工点击、手工创建、手工激活、手工查服务元数据的动作,包装成一组可以被 GitHub Copilot 这类 coding agent 调用的工具。SAP 在 RAP130 练习里把它描述为运行在 ADT for Visual Studio Code 扩展内部的本地 HTTP Server,它实现的是 Model Context Pro

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

JAVA题目&答案

JAVA题目&答案JAVA题目&答案JAVA题目&答案

zhuenwei的专栏 643

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java面试题目

java面试题目java面试题目java面试题目java面试题目

iteye_10498的博客 3672

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java毕业设计题目大全

本文是节选部分JAVA相关毕业题目 --文章底部获取最新论文模板-- 以下是设计题目: 班级风采网站的设计 工资绩效管理系统的开发 电子产品销售网站的设计与实现 酒店预订信息管理系统的设计 成绩管理系统 B2C的电子商务系统(J2EE) B2C购物网站设计 教学网站及网上考试系统的设计与实现 ERP采购系统 IC卡管理系统 JAVA语言考试系统的设计与实现 JSP房产中...

技术宅的博客 5602

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java java算法题目_java常见算法题目

1: JAVA经典算法40题2: 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?3: 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....4: public class exp2{5: public static void main(String arg...

weixin_39975683的博客 304

java机试题目

java机试题目 java机试题 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新...

weixin_41613520的博客 875

java 递归题目_Java 递归 常见24道题目 总结

1.N个台阶的走法递归【这里设为10个台阶】/*** N个台阶的走法递归* * 有个楼梯,台阶有10个,每次可以跳上1阶 或者 2阶 ,那么台阶的走法一共有多少种*/@Testpublic voidt() {System.out.println(f(10));}//斐波那契数列变形,求N个台阶的走法,递归方法public int f(intn) {if (n <= 2) {returnn;}...

weixin_42190030的博客 1408

java基础题目

java基础题目 题目: 现有如下文本:“Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的”。请编写程序,统计该文本中"Java"一词出现的次数。 想法: 从左至右依次查找,将已查找的部分截取掉。 方法: 查找参数字符串str在调用方法的字符串中第一次出现的索引,如果不存在,返回-1 public int indexOf(String...

weixin_44705447的博客 733

Java-笔试题目01

我同学给我发来他的笔试题目。。。说实话真的简单 public static void main(String[] args) { int sum=0; for (int i = 1; i <= 20; i++) { if (i%2==0){ sum-=i; }else{ sum+=i; } }

wisdom_176的博客 166

JAVA经典笔试题目

一篇好的java经典面试题目让我每天学到的知识点又丰富了一点

ZengWen1314的博客 7333
上一篇: idea中Scala项目环境搭建
下一篇: VMware虚拟网络与本地网络配置
Ordinary_Data
博客等级 码龄7年 6粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值