一、百僧吃百馍
问题概述:100个和尚吃了100个馒头,100和尚有大和尚和小和尚,一个大和尚能吃3馒头,三个小和尚吃1个馒头,问大和尚和小和尚有多少个?
public class Baiseng {
public static void main(String[] args) {
System.out.println("*****百僧吃百馍******");
//一共100个和尚 100个馍,1个大和尚吃3个馍,3个小和尚吃1个馍
int da;//大和尚人数
int xi=0;//小和尚人数
for(da=1;da<34;da++)
{
xi=100-da;
if(da*3+xi/3==100){
System.out.println("大和尚人数为:"+da+"小和尚人数为:"+xi);
}
}
}
}
运行结果为:
二、水仙花数
问题概述:水仙花数为三位数,每人数的立方和等于数字本身
1.判断数字是否为水仙花数
import java.util.Scanner;
public class Shuixianhua {
public static void main(String[] args) {
System.out.println("****水仙花数****");
System.out.println("输入的数字仅限于100-999内!");
System.out.println("请输入您要判断的三位数:");
Scanner scanner=new Scanner(System.in);
int value= scanner.nextInt();
//定义三位数的百,十,个位数
//百位数i
int i=value/100;
//十位数j
int j=value%100/10;
//个位数k
int k=value%10;
if(value>99&&value<1000)
{
if(i*i*i+j*j*j+k*k*k==value){
System.out.println("这个数是水仙数");
}
else{
System.out.println("这个数不是水仙数!");
}
}
else{
System.out.println("您输入的数字有误!");
}
}
}
结果为:
2.给定区间查找水仙花数
public class Shuixianhua2 {
public static void main(String[] args) {
System.out.println("100-999之间的水仙花数有:");
for (int i = 100; i < 1000; i++) {
int a = i / 100;
int b = i % 100 / 10;
int c = i % 10;
int temp = a * a * a + b * b * b + c * c * c;
if (temp == i) {
System.out.println(i);
}
}
}
}
结果为:
三、猴子吃桃
问题概述:猴子摘了一堆桃,猴子第一天吃一半多一个,第二天吃了剩下的一半多一个,依次类推,每天都吃剩下的一半多一个,到10天就剩下1个桃子。求这堆桃有多少个?
public class Monkey {
public static void main(String[] args) {
System.out.println("***猴子吃桃***");
int num=1;//桃子数量
int day;//天的数量
for(day=9;day>=1;day--)
{
num=2*(num+1);
}
System.out.println("猴子总共摘了"+num+"个桃子");
}
结果为:
四、兔子生子
问题概述:一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子第三个月后每个月又生一对兔子,假如都不死,问第n个月的兔子对数为多少?
public class Feiboniz {
public static void main(String[] args) {
System.out.println("****兔子问题****");
int i = 1;
for (int j = 1; j <= 12; j++) {
System.out.println("兔子第" + j + " 个月的总数为:" + f(j));
}
}
public static int f(int x) {
if (x == 1 || x == 2) {
return 1;
} else {
return f(x - 1) + f(x - 2);
}
}
}
结果为: