没有合适的资源?快使用搜索试试~ 我知道了~
首页JAVA经典算法实战:繁殖兔子与素数探索
JAVA经典算法实战:繁殖兔子与素数探索
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 141 浏览量
更新于2024-06-20
收藏 184KB DOC 举报
在"JAVA经典算法42例"文档中,我们发现了三个精心设计的Java程序示例,旨在帮助学习者提升算法技能,解决实际问题并增强求职竞争力。这些例子覆盖了递归、数据结构以及基本的算法应用。 第一个程序是关于斐波那契数列的问题,它展示了如何计算一对兔子繁殖的数量。通过定义一个名为`exp2`的类,包含两个方法`main`和`f`,程序利用递归思想模拟兔子繁殖的规律。`f`方法采用分治策略,当`x`为1或2时返回1,否则返回前两个月份兔子数量之和。这个例子体现了递归算法在计数问题中的应用。 第二个程序涉及判断101到200之间的素数。这里定义了一个`math`类,其中`iszhishu`方法用于检测一个数是否为素数,通过遍历2到该数的平方根,如果存在能整除该数的因子,即为非素数;否则,它是素数。这个程序展示了如何使用循环和条件判断来实现基础的素数筛选算法。 第三个程序则是寻找所谓的"水仙花数"。水仙花数指的是一个三位数,其各位数字立方和等于该数本身,如153(1^3 + 5^3 + 3^3 = 153)。程序同样使用一个`math`类,通过循环遍历三位数范围内的每一个数,检查其是否满足水仙花数的条件。这个例子展示了数字性质的探索和数学在编程中的应用。 通过学习和实践这三段代码,Java开发者可以增强对递归、素数判定和特殊数字特征的理解,这些都是算法和数据结构中基础且实用的知识。掌握这些技能不仅能提升个人技术栈,还能在面对复杂的业务需求和面试挑战时展现出扎实的内功,从而在竞争激烈的IT行业中脱颖而出。
资源详情
资源推荐
}
if (i.matches(E2))
{
countE++;
}
}
System.out.println("汉字的个数"+countH);
System.out.println("字母的个数"+countE);
}
}
【程序 8】 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时共有 5 个数相加),几
个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
import java.io.*;
public class Sumloop {
public static void main(String[] args) throws IOException
{
int s=0;
String output="";
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入a的值");
String input =stadin.readLine();
for(int i =1;i<=Integer.parseInt(input);i++)
{
output+=input;
int a=Integer.parseInt(output);
s+=a;
}
System.out.println(s);
}
}
另解:
import java.io.*;
public class Sumloop {
public static void main(String[] args) throws IOException
{
int s=0;
int n;
int t=0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
String input = stadin.readLine();
n=Integer.parseInt(input);
for(int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
【程序 9】 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如 6=1+2+3.编程 找出 1000 以内的所有完数。
public class Wanshu {
public static void main(String[] args)
{
int s;
for(int i=1;i<=1000;i++)
{
s=0;
for(int j=1;j<i;j++)
if(i % j==0)
s=s+j;
if(s==i)
System.out.print(i+" ");
}
System.out.println();
}
}
【程序 10】 题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第 10 次落地时,共经过多少米?第 10
次反弹多高?
public class Ex10 {
public static void main(String[] args)
{
double s=0;
double t=100;
for(int i=1;i<=10;i++)
{
s+=t;
t=t/2;
}
System.out.println(s);
System.out.println(t);
}
}
【程序 11】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
public class Wanshu {
public static void main(String[] args)
{
int i=0;
int j=0;
int k=0;
int t=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
if(i!=j && j!=k && i!=k)
{t+=1;
System.out.println(i*100+j*10+k);
}
剩余25页未读,继续阅读
小小哭包
- 粉丝: 1907
- 资源: 3982
下载权益
电子书特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功