java

位置:IT落伍者 >> java >> 浏览文章

JAVA经典算法32题


发布日期:2020年04月16日
 
JAVA经典算法32题

【程序】 题目古典问题有一对兔子从出生后第个月起每个月都生一对兔子小兔子长到第四个月后每个月又生一对兔子假如兔子都不死问每个月的兔子总数为多少?

程序分析 兔子的规律为数列

public class exp{

public static void main(String args[]){

int i=;

for(i=;i<=;i++)

Systemoutprintln(f(i));

}

public static int f(int x)

{

if(x== || x==)

return ;

else

return f(x)+f(x);

}

}

【程序】 题目判断之间有多少个素数并输出所有素数

程序分析判断素数的方法用一个数分别去除到sqrt(这个数)如果能被整除

则表明此数不是素数反之是素数

import javautilArrayList;

public class Sushu {

public static void main(String[] args) {

ArrayList list = new ArrayList();

for(int i =;i<=;i++){

if(isPrime(i))

listadd(i);

}

Systemoutprintln(list+\n共有+listsize()+个素数);

}

public static boolean isPrime(int i){

boolean flag = true;

for(int j =;j<=Mathsqrt(i);j++){

if(i%j==){

flag = false;

}

}

return flag;

}

}

【程序

题目输入一行字符分别统计出其中英文字母空格数字和其它字符的个数

程序分析利用while语句条件为输入的字符不为 \n

【程序

题目求s=a+aa+aaa+aaaa+aaa的值其中a是一个数字例如++++(此时共有个数相加)几个数相加有键盘控制

程序分析关键是计算出每一项的值

【程序

题目一个数如果恰好等于它的因子之和这个数就称为 完数 例如=编程 找出以内的所有完数

【程序

题目一球从米高度自由落下每次落地后反跳回原高度的一半再落下求它在 第次落地时共经过多少米?第次反弹多高?

【程序

题目个数字能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析可填在百位十位个位的数字都是组成所有的排列后再去 掉不满足条件的排列

【程序

题目企业发放的奖金根据利润提成利润(I)低于或等于万元时奖金可提%利润高于万元低于万元时低于万元的部分按%提成高于万元的部分可可提成%万到万之间时高于万元的部分可提成%万到万之间时高于万元的部分可提成%万到万之间时高于万元的部分可提成%高于万元时超过万元的部分按%提成从键盘输入当月利润I求应发放奖金总数?

程序分析请利用数轴来分界定位注意定义时需把奖金定义成长整型

【程序

题目一个整数它加上后是一个完全平方数再加上又是一个完全平方数请问该数是多少?

程序分析万以内判断先将该数加上后再开方再将该数加上后再开方如果开方后的结果满足如下条件即是结果请看具体分析

【程序

题目输入某年某月某日判断这一天是这一年的第几天?

程序分析日为例应该先把前两个月的加起来然后再加上天即本年的第几天特殊情况闰年且输入月份大于时需考虑多加一天

【程序

题目输入三个整数xyz请把这三个数由小到大输出

程序分析我们想办法把最小的数放到x上先将x与y进行比较如果x> y则将x与y的值进行交换然后再用x与z进行比较如果x> z则将x与z的值进行交换这样能使x最小

【程序

题目输出*口诀

程序分析分行与列考虑i控制行j控制列

【程序

题目猴子吃桃问题猴子第一天摘下若干个桃子当即吃了一半还不瘾又多吃了一个 第二天早上又将剩下的桃子吃掉一半又多吃了一个以后每天早上都吃了前一天剩下 的一半零一个到第天早上想再吃时见只剩下一个桃子了求第一天共摘了多少

程序分析采取逆向思维的方法从后往前推断

【程序

题目两个乒乓球队进行比赛各出三人甲队为abc三人乙队为xyz三人已抽签决定比赛名单有人向队员打听比赛的名单a说他不和x比c说他不和xz比请编程序找出三队赛手的名单

程序分析判断素数的方法用一个数分别去除到sqrt(这个数)如果能被整除 则表明此数不是素数反之是素数

【程序

题目打印出如下图案(菱形)

*

***

******

********

******

***

*

程序分析先把图形分成两部分来看待前四行一个规律后三行一个规律利用双重 for循环第一层控制行第二层控制列

【程序

题目有一分数序列//////求出这个数列的前项之和

程序分析请抓住分子与分母的变化规律

【程序

题目+!+!++!的和

程序分析此程序只是把累加变成了累乘

【程序

题目利用递归方法求!

程序分析递归公式fn=fn_*!

【程序

题目个人坐在一起问第五个人多少岁?他说比第个人大问第个人岁数他说比第个人大问第三个人又说比第人大两岁问第个人说比第一个人大两岁最后问第一个人他说是请问第五个人多大?

程序分析利用递归的方法递归分为回推和递推两个阶段要想知道第五个人岁数需知道第四人的岁数依次类推推到第一人(岁)再往回推

【程序

题目给一个不多于位的正整数要求求它是几位数逆序打印出各位数字

【程序

题目一个位数判断它是不是回文数是回文数个位与万位相同十位与千位相同

【程序

题目请输入星期几的第一个字母来判断一下是星期几如果第一个字母一样则继续 判断第二个字母

程序分析用情况语句比较好如果第一个字母一样则判断用情况语句或if语句判断第二个字母

【程序

题目之内的素数

【程序

题目个数进行排序

程序分析可以利用选择法即从后个比较过程中选择一个最小的与第一个元素交换 下次类推即用第二个元素与后个进行比较并进行交换

【程序

题目求一个*矩阵对角线元素之和

程序分析利用双重for循环控制输入二维数组再将a[i][i]累加后输出

【程序

题目有一个已经排好序的数组现输入一个数要求按原来的规律将它插入数组中

程序分析首先判断此数是否大于最后一个数然后再考虑插入中间的数的情况插入后此元素之后的数依次后移一个位置

【程序

题目将一个数组逆序输出

程序分析用第一个与最后一个交换

【程序

题目取一个整数a从右端开始的

程序分析可以这样考虑

()先使a右移

()设置一个低位全为其余全为的数可用~(~ < <)

()将上面二者进行&运算

               

上一篇:JAVA获取绝对路径的问题

下一篇:Servlet被WEB应用程序加载过程