曾经,有人说过,没有刷题的人生是不完整的。看了几天Java,我试着做了几道练习题,好让我的人生完整一点。(偷笑……)这里挑了一些题来跟大家分享,本文不定期更新。



题目集

1. 最后一个单词的长度(题目来自:计蒜客

问题:

分析: 要求字符串中最后一个单词的长度,由于单词间是由空格隔开的,如果字符串末尾没有空格,就可以用字符串最后一个字母的索引减去最后一个空格的位置索引来求。但是要注意的是,此题字符串的首尾均可能存在空格。所以在接收输入的字符串后,要先把字符串尾巴的空格去掉,可以用Sting类里的trim()方法来实现。处理完后再用String类的length()方法去求字符串长度length,length-1即为最后一个字母的位置索引。接下来要得到的的是最后一个空格的位置索引,可以用Sting类里的lastIndexOf(int x)方法来得到,其括号内的参数为int型,所以要查找空格的ASCII码,为32。如果不知道空格对应的ASCII码,也可以用(int)' '通过强制类型转化来得到对应的值。最后,要接受一串可能含有空格的字符串,可以用Scanner类里的nextLine()方法。

代码:

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int length=1,i=0;
String str="";
if(scan.hasNextLine()) {
str=scan.nextLine(); //接收输入的字符串(可能含有空格)
str=str.trim(); //去除字符串首部和尾部的空格
length=str.length(); //返回字符串的长度
} i=str.lastIndexOf(32); //返回最后一个空格的位置索引,空格ASCII码为32
System.out.println(length-1-i);
}
}

2. 爬楼梯(题目来自:计蒜客

问题描述:

分析:第一遍做的时候想当然的把问题转化为求二元方程x+2y=n的解有几个,提交后发现错了。再想想,发现如果顺序不同那也是不同的方法。比如有三级楼梯,x+2y=3的解只有(3,0)(1,1)两种,但是在(1,1)的情况下,先走一级再走两级和先走两级再走一级是不一样的,所以(1,1)的情况有两种走法,一共是三种。通过自己模拟,发现可以用递归思想来解决,而结果就是跟著名的斐波那契数列,n级楼梯所对应的方法数就是斐波那契数列(从第0项开始)中的第n项(F(n))。所以可以开一个数组a[],存放斐波那契数列数列,对于输入的n,输出a[n]即可。

代码:

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=0;
int[] ways=new int[51]; if(scan.hasNextInt()) {
n=scan.nextInt();
}
ways[0]=0;
ways[1]=1;
ways[2]=2;
for(int i=3;i<=n;i++) {
ways[i]=ways[i-1]+ways[i-2];
}
System.out.println(ways[n]);
}
}

3. XXX

Java编程练习题的更多相关文章

  1. 6、50道JAVA基础编程练习题跟答案

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...

  2. 50道JAVA基础编程练习题

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...

  3. 50道JAVA基础编程练习题 - 题目

    50道JAVA基础编程练习题[1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [2]题目:判断 ...

  4. 【译】快速高效学习Java编程在线资源Top 20

    想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...

  5. (转)2019年给Java编程初学者的建议(附学习大纲)

    本文链接:https://blog.csdn.net/javajlb/article/details/85920904 1. 引言这是一篇初学者干货,请耐心看完,希望对你有帮助 作为初学者的你,命中了 ...

  6. 重新精读《Java 编程思想》系列之组合与继承

    Java 复用代码的两种方式组合与继承. 组合 组合只需将对象引用置于新类中即可. 比如我们有一个B类,它具有一个say方法,我们在A类中使用B类的方法,就是组合. public class B { ...

  7. 快速高效学习Java编程在线资源Top 20(转载)

    想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...

  8. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  9. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

随机推荐

  1. ASPxComboBox 自带输入法确定之后再搜索解决方法

    <dx:ASPxComboBox ID="comChargeSubject_FixedFee" ClientInstanceName="comChargeSubje ...

  2. C#反射调用外部Dll,执行其中异步函数并取返回值

    using System.Reflection; 1.载入Dll Assembly asm=Assembly.LoadFile(FullPath);//FullPath 为Dll所在位置的全路径. 2 ...

  3. 利用jquery.backstretch插件,背景切换

    //首页自动更换背景特效开始============================================1.引用文件<script src="jquery.js" ...

  4. ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础

    ASP.NET MVC在原来ASP.NET的基础上抛弃了基于页面的架构风格,使用了全新的MVC(模型-视图-控制器)架构的一种技术. 目前,它和ASP.NET都共存在.NET Framework之上. ...

  5. Dubbo下载-从missing artifactId说起

    项目pom文件引入dubbo 报 missing artifactId https://github.com/dangdangdotcom/dubbox 从GitHub上直接下载解压包, 最好下载分支 ...

  6. SpringMVC 工作原理详解

    本文Github开源项目https://github.com/Snailclimb/JavaGuide,只供自己学习总结无商业用途,如有侵权,联系删除 先来看一下什么是 MVC 模式 MVC 是一种设 ...

  7. springboot面试专题及答案

    声明:此文章非本人所 原创,是别人分享所得,如有知道原作者是谁可以联系本人,如有转载请加上此段话 问题一 什么是 Spring Boot? 多年来,随着新功能的增加,spring 变得越来越复杂.只需 ...

  8. [js常用]百度将文字转化为语音实例

    嗷嗷方便的文字转语音,不过用的时候记得到百度语音上申请key,免费的.之前在网络上看到有人写了一部分,自己丰富下,以后用也方便 <!DOCTYPE html PUBLIC "-//W3 ...

  9. [清华集训]Rmq Problem / mex

    题目链接 我们离线处理这些询问 在右端点所在的位置用vector来push_back询问 维护每个数值最后出现的位置p[x] 从左往右扫,边走边回答询问 对于每个询问我们回答第一个p[x]<l的 ...

  10. BZOJ1856: [Scoi2010]字符串(组合数)

    题意 题目链接 Sol \(30 \%\)dp: \(f[i][j]\)表示放了\(i\)个\(1\)和\(j\)个\(0\)的不合法方案 f[0][0] = 1; cin >> N &g ...