1.//題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
//对兔子,假如兔子都不死,问每个月的兔子总数为多少?
本题要求计算的是兔子问题也是编程题目中经常看道德题目
首先我们来确定设那个值可以得到最后的答案,读题可知要求我们算的是每个月不死科每月多少以及一共多少,那么我们就要设置月份
使用递归的方法来计算兔子问题,兔子是没三个月开始生,所以前两个月不变,返回的是i值,代码如下。
现在口率的是三个月以后的思路,这里使用的是数学里面的斐波那锲思路,
这里可以看到没播纳妾数列的公式,所以我们带入公式
因为上面不是void所以是有返回值的,因此我们就要ruternint类型让他返回,带到上面的方法组里面运行
最后方法体里面的结果如下:
这里我输入的月份为,结果如下:
代码如下:
public class timu01 {
public static void main(String[] args) {
System.out.println(one(22));//最后输出我们要计算的月份就可以
}
static int one (int i){//首先返回的是月份所以我们返回的是int类型
if (i<2)return i==0? 0: 1;//使用递归的方法来进行计算,首先兔子是三个月生一次啊所以前两个月都是 不练的返回i,使用的递归方法来计算
return one(i-1)+one(i-2);//本体使用的是数学中的微博纳妾方法,所以我们按照公式进行返回,就可以
}
}
2.//题目:判断101-200之间有多少个素数,并输出所有素数。
//素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。也就是素数只有两个因子。
本题要求我们写的是101-200之间的素数
首先我们脑子里面得有一个大概的方向让我们设哪些值
我们首先要有分母分子,如果商这个值只有1和本身就是我们需要的结果
因为给的被除数和出书都是一个范围的搜易我们得使用for循环来进行多次运算
这样我们的被除数和出书都已经确定完成{这里j从而开始是因为1是任何数的因子所以我们要从二开始}
在Java语言中“%”这个字符表示可以整除,所以只要是i可以%进j的都不是我们需要的
因此
用break关键字停止运算,
因为分子是从二开始所以我们的分母-1可以除尽的话就可以获取,代如下:
让最后得数累加算出一共出现了几个最后输出
这里我们哟啊啊注意最后的输出一定要放到循环体外面,不然会重复输出
最后代码如下:
public static void main(String[] args) {
int one=0;
for (int i = 101; i <200 ; i+=2) {//这里计算的是分母的范围
for (int j = 2; j <i ; j++) {//这里计算的是分子的范围
if (i%j==0)//如果分母可以除尽分子就暂停原酸,因为素数的公式是只有1和本身可以整除的数字
break;
if (j==i-1){//因为分子是从2开始的,所以最后想要计算素数的条件就得-1
one++;//让他们累加起来
System.out.println(i+" ");
}
}
}
System.out.println("素数一共有"+one+"个");
}
3.//题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
//153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。想当年,做这些题都是网上找答案,如今事过境迁,不会也得会。
水仙花数,是每个位次上的数字立方相加等于这个数字,那么这个题目就得分成个位十位百位千位来看
因为要求出哥哥位数之间的数字所以要把他们都转化成个位,除尽相应的倍数,最后按照相应的提议让你他们三次方相乘最后相加就好
最后输出结果为:
代码如下:
public static void main(String[] args) {
int a,b,c;//设立三个数来代表水仙花数的个位十位百位
for (int i = 100; i <=1000 ; i++) {
a=i/100;//不要余数所以求得/十位是百位上所对象的数字
b=i%100/10;//十位
c=i%10;//个位
if (a*a*a+b*b*b+c*c*c==i){
System.out.println("101-1000之间的水仙花数为:"+i);
}
}
}
4.题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。