本帖最后由 小羽同学 于 2018-7-17 18:52 编辑
题目一:
"百马百担",有一百匹马,驮一百担货,大马驮3担,中马驮2担,
两只小马驮1担,问有大,中,小马各几匹?
首先,拿到这个问题我们可以根据它的提问定义三个变量来分别表示大,中,小马的个数.然后根据题意寻找它们个数之间的关系,
大马 + 中马 + 小马 = 100;
3 * 大马 + 2 * 中马 + 小马 / 2 = 100
小马匹数是偶数
最后利用for循环的嵌套来解决这个问题
public class problem {
public static void main(String[] args) { for (int large = 0; large <= 100; large++) {
for (int mid = 0; mid <= 100 - large; mid++) {
for (int small = 0; small <= 100 - large - mid; small++) {
if (large * 3 + mid * 2 + small * 1 / 2 == 100 && large + mid + small == 100 && small % 2 == 0) {
System.out.println("有大马" + large + "匹,中马" + mid + "匹,小马" + small + "匹");
System.out.println("===========================");
}
}
}
}
}
}
题目二:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
这道题目也很经典,看似好像每个月兔子的成长个数没有什么规律,但我们根据题意慢慢思考其实是可以找到关系的首先,我定义了三个变量big,mid和small来分别表示可以生小兔子的大兔子,刚出生一个月的成长期兔子和刚出生的小兔子,他们三个之间是有一定关系的// 1 2 3 4 5 6 7 8
// 1小 1中 1大+1小 1大+1中+1小 2大+1中+2小 3大+2中+3小 5大+3中+5小 8大+5中+8
小第一个月只有一个小兔子,我初始化
int big = 0;
int mid = 0;
int small = 1;
然后之后每个月大兔子的数量就等于上个月中兔子的数量,中兔子的数量等于上个月小兔子的数量,小兔子的数量等于这个月大兔子的数量,即
big += mid;
mid = small;
small = big;
源代码:public class rabbit {
public static void main(String[] args) {
System.out.println("请输入月数:");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int twain;
int big = 0;
int mid = 0;
int small = 1;
for (int i = 1; i <= month-1; i++) {
big += mid;
mid = small;
small = big;
}
twain = big + mid + small;
System.out.println(month+"月有兔子"+twain+"对5");
}
}
|
|