第三题方法一(代码)
#include <iostream>
int main() {
// 初始化甲班和乙班的学生人数
int studentsA = 42;
int studentsB = 35;
// 新转来的学生人数
int newStudents = 25;
// 计算总人数
int totalStudents = studentsA + studentsB + newStudents;
// 计算平均每班应有的人数
int averageStudentsPerClass = totalStudents / 2;
// 分别计算甲班和乙班应分到的学生数
int studentsToA = averageStudentsPerClass - studentsA; // 甲班需要增加的学生数
int studentsToB = averageStudentsPerClass - studentsB; // 乙班需要增加的学生数
// 输出结果
std::cout << "甲班原有学生: " << studentsA << ", 分配后增加: " << studentsToA << ", 总计: " << averageStudentsPerClass << std::endl;
std::cout << "乙班原有学生: " << studentsB << ", 分配后增加: " << studentsToB << ", 总计: " << averageStudentsPerClass << std::endl;
return 0;
}
第三题方法二(代码)
#include <iostream>
int main() {
// 初始化甲班和乙班的学生人数
int studentsA = 42;
int studentsB = 35;
// 新转来的学生人数
int newStudents = 25;
// 首先,找出乙班比甲班少的学生数
int diff = studentsA - studentsB;
// 如果乙班人数少于甲班,则先补足这个差值
if (diff > 0 && newStudents >= diff) {
studentsB += diff;
newStudents -= diff;
}
// 现在,两班人数相等或乙班人数更多(但不影响后续分配),将剩余的新学生平均分配到两班
int studentsPerClass = newStudents / 2;
studentsA += studentsPerClass;
studentsB += studentsPerClass;
// 如果newStudents是奇数,则最后一名学生也需要被分配(这里假设给甲班)
if (newStudents % 2 != 0) {
studentsA++;
}
// 输出结果
std::cout << "甲班分配后学生数: " << studentsA << std::endl;
std::cout << "乙班分配后学生数: " << studentsB << std::endl;
return 0;
}
第四题代码
#include <iostream>
int main() {
// 432×5 和 432×10/2 在数学上是等价的,因为乘以10后再除以2与直接乘以5效果相同。
int number = 432;
// 首先计算 432 * 10
int resultTimesTen = number * 10;
// 然后将结果除以2
int result = resultTimesTen / 2;
// 输出结果
std::cout << "432 * 5 的结果是:" << result << std::endl;
return 0;
}
第五题验证程序代码
#include <iostream>
// 函数用于计算给定数与15的乘积
int multiplyByFifteen(int number) {
// 直接计算 number * 15
int directResult = number * 15;
// 计算 number 加上它的一半,然后乘以10
int halfNumber = number / 2; // 注意:这里假设number是偶数或我们接受整数除法
int alternativeResult = (number + halfNumber) * 10;
// 输出两种计算方式的结果
std::cout << number << " * 15 = " << directResult << std::endl;
std::cout << "(" << number << " + " << halfNumber << ") * 10 = " << alternativeResult << std::endl;
// 验证两种计算方式是否等价
if (directResult == alternativeResult) {
std::cout << "两种方法的结果是等价的。" << std::endl;
} else {
std::cout << "警告:两种方法的结果不相等,可能存在整数除法的问题。" << std::endl;
}
// 返回直接计算的结果
return directResult;
}
int main() {
// 测试几个例子
multiplyByFifteen(24);
multiplyByFifteen(248);
multiplyByFifteen(3456);
return 0;
}