50道java算法题(一)
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
f(n)=f(n-2)+f(n-1) 使用递归
public static int fib(int n)
{ if(n==0 || n==1 )
{
return 1; }
else
{
return fib(n-1)+fib(n-2);
}
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
public static boolean fn(int n)
{
int flag=(int) Math.sqrt(n);
boolean prime=true;
for(int i=2;i<=flag;i++)
{
if(n%i==0)
{
prime=false;
break;
}
}
return prime;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=101;i<=200;i++)
{
if(fn(i))
{
System.out.println(i);
}
}
}
【程序3】
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
for(int i=100;i<=999;i++)
{
int a=i/100;
int b=(i-a*100)/10;
int c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
{
System.out.println(i);
}
}
【程序4】
字符串反转
题目:编程序将一个字符串反转。
输入任意字符串,比如abcd转换成dcba
public static String reverse(String str)
{
char [] mystr=str.toCharArray();
for(int count=0;count<str.length()/2;count++)
{
char temp=mystr[count];
mystr[count]=mystr[str.length()-count-1];
mystr[str.length()-count-1]=temp; }
str=new String(mystr); //字符串转数组
return str; }
【程序5】
题目:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
public static void numberOfChar(String str)
{
char[] mystr=str.toCharArray();
int nuberic=0;
int letter=0;
int chinese_character=0; for(int count=0;count<mystr.length;count++)
{
int cn=mystr[count];
if(cn>=19968 && cn<=40623) //java汉字字符编码
{
chinese_character++;
}
if( Character.isDigit(mystr[count]))
{
nuberic++;
}
else if(Character.isLetter(mystr[count]))
{
letter++;
} }
System.out.println("number is " +nuberic +"\nletter is "+letter+"\nchinese letter"+chinese_character);
}
50道java算法题(一)的更多相关文章
- 50道java线程面试题
50道Java线程面试题 下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序 ...
- 6、50道JAVA基础编程练习题跟答案
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...
- 50道JAVA基础编程练习题
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...
- 50道JAVA基础编程练习题 - 题目
50道JAVA基础编程练习题[1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [2]题目:判断 ...
- 50道Java集合经典面试题(收藏版)
前言 来了来了,50道Java集合面试题也来啦~ 已经上传github: https://github.com/whx123/JavaHome 1. Arraylist与LinkedList区别 可以 ...
- 50 道 Java 线程面试题(转载自牛客网)
下面是 Java 线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理 ...
- 2017年50道Java线程面试题
下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...
- 一道java算法题分析
最近在面试中遇到这样的一道算法题: 求100!的结果的各位数之和为多少? 如:5!=5*4*3*2*1=120,那么他们的和为1+2+0=3这道题不算难,不过倒是注意的细节也有 ...
- 2017常见的50道java基础面试题整理(附答案)
1.作用域public,private,protected,以及不写时的区别 答: 区别如下: 2.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是 ...
随机推荐
- 理解 AngularJS 的 Scope
一.遇到的问题 问题发生在使用 AngularJS 嵌套 Controller 的时候.因为每个 Controller 都有它对应的 Scope(相当于作用域.控制范围),所以 Controller ...
- 看懂理解 keyboard中 , navigation的设置: 切换工作区和移动窗口到不同的工作区.
navigation中, 主要有两个方面的内容: 移动窗口到工作区 的shortcuts 切换工作区的shortcuts 首先清楚: 工作区workspace, fedora 23中 好像只有上下方向 ...
- 配置red hat的ip 自动地址
三个文件: 需要配置的内容包括: nameserver dns, hostname和gateway, ip地址等等. /etc/resolv.conf中配置dns, 这个也可以在 sysconfig/ ...
- R-数据导入
目录 键盘输入 导入文本文件 导入Excel文件 访问数据库管理系统 键盘输入 > mydata <- data.frame(age=numeric(0), gender=characte ...
- netstat命令的常见用法(转)
netstat 的10个基本用法 Netstat 简介 Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- 2012Chengdu B (快速组合数)
B - Candy Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit St ...
- JS的构造函数
//构造函数 //使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法 //当对象被实例化后,构造函数会立即执行它所包含的任何代码 function myObject(ms ...
- .NET Core Preview
.NET Core Preview 这是很容易上手使用.NET Core在您选择的平台上. 你只需要一个命令行,一个文本编辑器和10分钟的时间. 原文链接:https://www.microsoft. ...
- Java Io(数据输入输出流)
Java Io 字节流中的DataInputStream 和 DataOutputStream,使用流更加方便,是流的一个扩展,更方便读取int, long,字符等类型数据. 事例代码如下: pack ...