【程序41】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
程序分析:有个疑问就是题目没说第五个猴子拿到的只有一个桃子,但是别人都知道??不理解
这其实就是一个递归问题每次*5 +1
这个用逆向思维
* 5 4 3 2 1
* 桃子个数 6 31 156 781 3906
*猴子拿的个数 1 6 31 156 781
public class Programme41 {
public static void main(String[] args) {
System.out.println(Peach(1));;
}
private static int Peach(inti) {
if (i==5) {
return 6;
}
returnPeach(i+1)*5+1;
}
}
【程序42】
题目:809*??=800*??+9*??+1
其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
程序解析:for循环的使用
public class Programme42 {
public static void main(String[] args) {
String result="";
for (inti = 100; i < 1000;i++) {
if (809i==800i+9*i+1) {
result=i+" ";
}
}
if (result.equals("")) {
System.out.println(“没有合适的数”);
}else {
System.out.println(“合适的数有:”+result);
}
}
}
【程序43】
题目:求0—7所能组成的奇数个数。
*程序分析:最少也是1位数,最多能组成8位的数字
* 第一位不能为零,最后一位不能是偶数
* 0到7有四个奇数
* 这里用累加求和
public class Programme43 {
public static void main(String[] args) {
int n = 8;//位数
int sum = 0;//总和
// 1位数情况
sum += n / 2;
// 2位数情