上次作业
作业题1
蜗牛沿着树干向上爬,白天爬90厘米,夜晚向下滑50厘米。第6天爬完时,刚好达到树梢。这棵树有多高?
int main() {
int day_climb = 90; // 白天爬升高度
int night_slide = 50; // 夜晚下滑高度
int net_daily = day_climb - night_slide; // 每日净爬升
int days = 6; // 总天数
int height = 0; // 树的高度
// 前5天每天净爬升40厘米
height = net_daily * (days - 1);
// 第6天白天爬升90厘米到达树顶,不再下滑
height += day_climb;
cout << "树的高度是: " << height << "厘米" << endl;
return 0;
}
作业题2
蜗牛每天白天能爬上4.17米,但到晚上睡觉时又要下滑3.17米。问这只蜗牛多少天后才能爬上树顶?
#include <iostream>
int main() {
double day_climb = 4.17; // 白天爬升高度(米)
double night_slide = 3.17; // 夜晚下滑高度(米)
double tree_height = 15.17; // 树的高度(米)
double current_height = 0.0;
int days_needed = 0;
for (int day = 1; ; day++) {
current_height += day_climb; // 白天爬升
days_needed = day;
if (current_height >= tree_height) {
break; // 达到或超过树高,结束循环
}
current_height -= night_slide; // 夜晚下滑
if (current_height < 0) {
current_height = 0; // 防止滑到地面以下
}
}
cout << "蜗牛需要 " << days_needed << " 天才能爬上树顶" << endl;
return 0;
}
课堂学习
课程回顾
鸡兔同笼
思路分析:
如果 46只都是兔,一共应有 4×46=184只脚,这和已知的128只脚相比多了184-128=56只脚.
如果用一只鸡来置换一只兔,就要减少4-2=2(只)脚.那么,46只兔里应该换进几只鸡才能使56只脚的差数就没有了呢?
显然,56÷2=28,只要用28只鸡去置换28只兔就行了.所以,鸡的只数就是28,兔的只数是46-28=18.
电脑购买
思路分析:
如果 8台电脑都是B类型,一共应有 8×7000=56000元,这和已知的钱数相比多了56000-50000=6000元.
如果用一台A来置换一台B,就要减少7000-6000=1000元.
那么,8台里应该换进几台A才能使6000的差数没有呢?
显然,6000÷1000=6,只要用6台A去置换6台B就行了.所以,B的台数为2,A的台数为8-2=6。
代码实现
int main() {
// 定义变量:头的数量和腿的数量
int heads, legs;
cin>>heads>>legs;
// 解方程组
int y = (legs - 2 * heads) / 2; // 兔子的数量
int x = heads - y; // 鸡的数量
cout<<"鸡"<<x<<"兔"<<y;
return 0;
}
课后作业
课后作业1
蜘蛛、蜻蜓和蝉的问题:蜘蛛、蜻蜓和蝉共有18只,它们共有腿118条,翅膀20对。已知蜘蛛有8条腿,0对翅膀;蜻蜓有6条腿,2对翅膀;蝉有6条腿,1对翅膀。问题要求计算每种动物的数量。
int main() {
// 蜘蛛x,蜻蜓y,蝉z
// x + y + z = 18
// 8x + 6y + 6z = 118
// 0x + 2y + 1z = 20
// 从第三个方程得到 z = 20 - 2y
// 代入第一个方程: x + y + (20-2y) = 18 => x - y = -2 => x = y - 2
// 代入第二个方程: 8(y-2) + 6y + 6(20-2y) = 118
// 展开: 8y - 16 + 6y + 120 - 12y = 118
// 合并: (8y+6y-12y) + (-16+120) = 118 => 2y + 104 = 118 => 2y = 14 => y = 7
int y = 7; // 蜻蜓数量
int z = 20 - 2 * y; // 蝉数量
int x = y - 2; // 蜘蛛数量
cout << "蜘蛛数量: " << x << endl;
cout << "蜻蜓数量: " << y << endl;
cout << "蝉数量: " << z << endl;
return 0;
}
课后作业2
学校宿舍问题:学校有12间宿舍,可以住80人。大宿舍住8人,中宿舍住7人,小宿舍住5人。问题要求计算中宿舍和小宿舍各有多少间。
int main() {
// 大宿舍x,中宿舍y,小宿舍z
// x + y + z = 12
// 8x + 7y + 5z = 80
// 从第一个方程得到 x = 12 - y - z
// 代入第二个方程: 8(12-y-z) + 7y + 5z = 80
// 展开: 96 - 8y - 8z + 7y + 5z = 80
// 合并: -y -3z = -16 => y + 3z = 16
// 遍历可能的z值
for (int z = 0; z <= 5; z++) { // 因为3z <= 16 => z <=5
int y = 16 - 3 * z;
int x = 12 - y - z;
// 检查x是否非负
if (x >= 0 && y >= 0 && z >= 0) {
// 验证总人数
if (8*x + 7*y + 5*z == 80) {
cout << "大宿舍: " << x << " 间" << endl;
cout << "中宿舍: " << y << " 间" << endl;
cout << "小宿舍: " << z << " 间" << endl;
break; // 找到第一个解就退出
}
}
}
return 0;
}