3、双分支判断 - 习题解析

目录

解析部分:

双分支

1303. 冷饮的价格(1)

问题描述

小明在冷饮店按照数量不同的价格购买冰激凌,需要根据购买的数量计算应付的总价。

解题思路

根据题目描述,冰激凌的价格依据购买数量而定:

  • 如果购买数量大于等于10个,每个冰激凌的价格是2元;
  • 如果购买数量小于10个,每个冰激凌的价格是2.2元。

计算总价的步骤如下:

  1. 判断购买数量:根据小明购买的冰激凌数量决定使用哪个价格计算。
  2. 计算应付金额:使用相应的单价乘以购买数量,得到总价。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n; // 定义变量存储购买数量
    cin >> n; // 从标准输入读取数量

    double price; // 定义变量存储单价
    if (n >= 10) {
        price = 2.0; // 购买10个及以上的单价
    } else {
        price = 2.2; // 购买10个以下的单价
    }

    double total = price * n; // 计算总价

    // 输出应付金额,保留一位小数
    cout << fixed << setprecision(1) << total << endl;

    return 0; // 程序结束
}
代码解析
  • int n; 定义一个整型变量n来存储用户输入的购买数量。
  • cin >> n; 使用cin从标准输入读取购买数量。
  • double price; 定义一个双精度浮点数变量price来根据购买数量确定单价。
  • 使用if-else结构判断并设置相应的单价。
  • double total = price * n; 计算总价。
  • cout << fixed << setprecision(1) << total << endl; 使用cout输出应付金额,并通过fixedsetprecision(1)确保结果保留一位小数。

这样,程序能够根据购买数量正确计算并输出小明应付的金额。

1033. 判断奇偶数

问题描述

需要判断输入的整数是否为偶数,并按照特定格式输出结果。

解题思路

判断一个整数是否为偶数,可以通过检查该数除以2的余数是否为0来实现。如果余数为0,则该数为偶数;否则,为奇数。

  1. 读取输入:从标准输入读取一个整数。
  2. 判断奇偶性:使用该整数除以2的余数判断。
  3. 输出结果:如果是偶数,输出y e s;如果是奇数,输出n o
代码实现
#include <iostream>
using namespace std;

int main() {
    int num; // 定义变量存储输入的整数
    cin >> num; // 从标准输入读取整数

    // 判断奇偶性并输出结果
    if (num % 2 == 0) {
        cout << "y e s" << endl;
    } else {
        cout << "n o" << endl;
    }

    return 0; // 程序结束
}
代码解析
  • int num; 定义一个整型变量num来存储用户输入的整数。
  • cin >> num; 使用cin从标准输入读取这个整数。
  • 使用if-else语句检查整数除以2的余数,以判断该整数是奇数还是偶数。
  • 根据判断结果,使用cout按照要求的格式输出y e sn o

通过上述方式,程序能够正确判断输入的整数的奇偶性,并以指定格式输出结果。

1302. 是否适合晨练?

问题描述

小明希望通过程序帮助爷爷判断根据温度是否适合晨练。如果温度在20℃至30℃之间(包括20℃和30℃),则输出"OK"表示适合晨练;否则,输出"NO"表示不适合晨练。

解题思路
  1. 读取输入的温度:首先从标准输入获取当天的温度(t)。
  2. 判断温度是否适宜:检查温度是否在20℃至30℃之间。
  3. 输出判断结果:如果温度适宜,则输出"OK";如果不适宜,则输出"NO"。
代码实现
#include <iostream>
using namespace std;

int main() {
    int t; // 定义变量存储输入的温度
    cin >> t; // 从标准输入读取温度

    // 根据温度判断是否适合晨练并输出结果
    if (t >= 20 && t <= 30) {
        cout << "OK" << endl; // 温度适宜,输出OK
    } else {
        cout << "NO" << endl; // 温度不适宜,输出NO
    }

    return 0; // 程序结束
}
代码解析
  • int t; 定义一个整型变量t来存储用户输入的温度值。
  • cin >> t; 使用cin从标准输入读取这个温度值。
  • 使用if-else语句根据温度值判断是否在20℃至30℃之间。
  • 根据判断结果,使用cout输出"OK"或"NO"。

通过以上方法,程序能够根据输入的温度值正确判断并输出是否适合晨练。

1632. 需要几辆车

问题描述

学校组织外出旅游,需要根据同学的总人数决定需要几辆大巴车。每辆大巴车可以坐30人。

解题思路

计算需要大巴车的数量,可以将同学总人数除以大巴车的容量(30人),如果有余数,则还需要再加一辆车。

  1. 读取同学总人数:从标准输入读取同学的总人数(n)。
  2. 计算需要的大巴车数量:使用同学总人数除以大巴车容量,如果除不尽,需要的大巴车数量加一。
  3. 输出大巴车数量
代码实现
#include <iostream>
using namespace std;
int main() {
    int n; // 定义变量存储同学总人数
    cin >> n; // 从标准输入读取同学总人数
    
    // 计算需要的大巴车数量
    int buses = n / 30;
    if (n % 30 != 0) {
        buses++;
    }
    
    // 输出大巴车数量
    cout << buses << endl;
    return 0; // 程序结束
}
代码解析
  • int n; 定义一个整型变量n来存储用户输入的同学总人数。
  • cin >> n; 使用cin从标准输入读取同学总人数。
  • int buses = n / 30; 计算需要的大巴车数量的整数部分。
  • if (n % 30 != 0) { buses++; } 如果同学总人数除以30有余数,则需要的大巴车数量加一。
  • cout << buses << endl; 使用cout输出计算得到的需要的大巴车数量。

通过使用if语句,可以更清晰地表达计算大巴车数量的逻辑。同时保持了原有的内容格式和解析说明。

1043. 行李托运价格

问题描述

根据行李重量计算托运费。10公斤或10公斤以下收费2.5元,超过10公斤的部分,每超过1公斤增加1.5元收费。

解题思路

计算行李托运费的步骤如下:

  1. 判断行李重量:如果行李重量小于等于10公斤,则直接按2.5元收费。
  2. 计算超重费用:如果行李重量超过10公斤,则超出的部分按每公斤1.5元的费用加收。
  3. 计算总费用:基础费用加上超重费用(如果有的话)。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int weight; // 定义变量存储行李重量
    cin >> weight; // 从标准输入读取行李重量

    double fee; // 定义变量存储托运费
    if (weight <= 10) {
        fee = 2.5; // 10公斤及以下的固定费用
    } else {
        // 基础费用加上超重部分费用
        fee = 2.5 + (weight - 10) * 1.5;
    }

    // 输出托运费,保留两位小数
    cout << fixed << setprecision(2) << fee << endl;

    return 0; // 程序结束
}
代码解析
  • int weight; 定义一个整型变量weight来存储用户输入的行李重量。
  • cin >> weight; 使用cin从标准输入读取行李重量。
  • double fee; 定义一个双精度浮点数变量fee来计算托运费。
  • 使用if-else结构计算行李的托运费用,考虑到行李重量在10公斤及以下和超过10公斤的不同情况。
  • cout << fixed << setprecision(2) << fee << endl; 使用cout输出托运费,并通过fixedsetprecision(2)确保结果保留两位小数。

这样,程序能够根据行李重量正确计算并输出托运费。

1037. 恐龙园买门票

问题描述

根据一个人的身高判断应购买的门票种类,并输出门票价格。身高低于1.3米的购买儿童票(60元),否则购买成人票(120元)。

解题思路

通过判断身高来决定门票价格:

  1. 如果身高小于1.3米,门票价格为60元。
  2. 如果身高等于或高于1.3米,门票价格为120元。
代码实现
#include <iostream>
using namespace std;

int main() {
    double height; // 定义变量存储身高
    cin >> height; // 从标准输入读取身高

    int price; // 定义变量存储门票价格
    if (height < 1.3) {
        price = 60; // 身高低于1.3米的门票价格
    } else {
        price = 120; // 身高等于或高于1.3米的门票价格
    }

    // 输出门票价格
    cout << price << endl;

    return 0; // 程序结束
}
代码解析
  • double height; 定义一个双精度浮点数变量height来存储用户输入的身高。
  • cin >> height; 使用cin从标准输入读取身高。
  • int price; 定义一个整型变量price来根据身高判断的结果存储门票价格。
  • 使用if-else语句根据身高判断应购买的门票种类,并设置相应的价格。
  • cout << price << endl; 使用cout输出计算得到的门票价格。

这样,程序能够根据输入的身高正确判断并输出相应的门票价格。

1034. 两数比大小

问题描述

给定两个不相等的整数(A)和(B),需要判断并输出其中较大的一个数。

解题思路

通过比较这两个数的大小,选择并输出较大的那一个:

  1. 如果(A > B),则(A)是较大的数。
  2. 否则,(B)是较大的数。
代码实现
#include <iostream>
using namespace std;

int main() {
    int A, B; // 定义变量存储两个整数
    cin >> A >> B; // 从标准输入读取两个整数

    // 比较两数大小并输出较大的数
    if (A > B) {
        cout << A << endl;
    } else {
        cout << B << endl;
    }

    return 0; // 程序结束
}
代码解析
  • int A, B; 定义两个整型变量AB来存储用户输入的两个整数。
  • cin >> A >> B; 使用cin从标准输入读取这两个整数。
  • 使用if-else语句比较这两个数的大小,并根据比较结果输出较大的数。
  • cout << A << endl;cout << B << endl; 使用cout输出较大的整数,并在输出后添加一个回车符号。

通过这种方法,可以准确地比较两个整数的大小,并输出较大的那一个。

1624. 超市的折扣

问题描述

小芳在新开的超市购买了3件商品,需要计算根据超市折扣活动她实际需要支付的金额。

解题思路

首先计算小芳购买的三件商品的总金额,然后根据总金额判断适用的折扣:

  1. 如果总金额满200元或超过200元,总价打8折。
  2. 如果总金额不满200元,总价打9折。
  3. 计算打折后的总金额。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double item1, item2, item3; // 定义变量存储三件商品的价格
    cin >> item1 >> item2 >> item3; // 从标准输入读取三件商品的价格

    double total = item1 + item2 + item3; // 计算总金额
    double finalTotal; // 定义变量存储最终应付的金额

    // 根据总金额判断适用的折扣并计算最终应付金额
    if (total >= 200) {
        finalTotal = total * 0.8; // 总金额满200元或超过200元,打8折
    } else {
        finalTotal = total * 0.9; // 总金额不满200元,打9折
    }

    // 输出最终应付的金额,保留一位小数
    cout << fixed << setprecision(1) << finalTotal << endl;

    return 0; // 程序结束
}
代码解析
  • double item1, item2, item3; 定义三个双精度浮点数变量来存储小芳购买的三件商品的价格。
  • cin >> item1 >> item2 >> item3; 使用cin从标准输入读取三件商品的价格。
  • double total = item1 + item2 + item3; 计算三件商品的总金额。
  • double finalTotal; 定义一个双精度浮点数变量来存储根据折扣活动计算后的最终应付金额。
  • 使用if-else结构根据总金额判断适用的折扣率,并计算最终应付金额。
  • cout << fixed << setprecision(1) << finalTotal << endl; 使用cout输出最终应付的金额,并通过fixedsetprecision(1)确保结果保留一位小数。

通过这种方法,可以准确地计算出小芳根据超市折扣活动实际需要支付的金额。

1622. 十位大还是个位大

问题描述

给定一个两位数(个位和十位不相等),需要判断并输出十位和个位中的较大数。

解题思路

要找出两位数中较大的一位,可以先分别提取出十位和个位的数字,然后比较这两个数的大小。

  1. 提取十位数:通过整除10得到。
  2. 提取个位数:通过对10取余得到。
  3. 比较并输出较大数:使用条件判断比较十位和个位哪个更大,并输出较大的数字。
代码实现
#include <iostream>
using namespace std;

int main() {
    int number; // 定义变量存储两位整数
    cin >> number; // 从标准输入读取整数

    int tenDigit = number / 10; // 提取十位数
    int oneDigit = number % 10; // 提取个位数

    // 比较十位和个位数,输出较大的那一位
    if (tenDigit > oneDigit) {
        cout << tenDigit << endl; // 十位大于个位,输出十位
    } else {
        cout << oneDigit << endl; // 个位大于或等于十位,输出个位
    }

    return 0; // 程序结束
}
代码解析
  • int number; 定义一个整型变量number来存储用户输入的两位整数。
  • cin >> number; 使用cin从标准输入读取这个两位数。
  • int tenDigit = number / 10; 计算并提取出十位数。
  • int oneDigit = number % 10; 计算并提取出个位数。
  • 使用if-else语句比较十位和个位数的大小,并根据比较结果输出较大的数。

这种方式能够准确地判断并输出给定两位数中十位和个位哪一位更大。

1625. 谁的年龄大

问题描述

甲和乙两人的年龄是两位数,且这两个年龄数位倒过来就是对方的年龄。需要判断谁的年龄更大,并输出较大的年龄。

解题思路

给定甲的年龄为两位数,首先要找到乙的年龄(即将甲的年龄数位倒过来),然后比较甲和乙的年龄大小。

  1. 提取甲年龄的十位和个位:通过整除10和对10取余得到。
  2. 计算乙的年龄:将甲年龄的个位和十位倒过来组合。
  3. 比较并输出较大年龄:比较甲和乙的年龄,输出较大的那个。
代码实现
#include <iostream>
using namespace std;
int main() {
    int n; // 定义变量存储甲的年龄
    cin >> n; // 从标准输入读取甲的年龄
    int tenDigit = n / 10; // 提取甲年龄的十位
    int oneDigit = n % 10; // 提取甲年龄的个位
    // 计算乙的年龄
    int reverseAge = oneDigit * 10 + tenDigit;
    // 比较甲乙年龄大小并输出较大的年龄
    if (n > reverseAge) {
        cout << n << endl;
    } else {
        cout << reverseAge << endl;
    }
    return 0; // 程序结束
}
代码解析
  • int n; 定义一个整型变量n来存储用户输入的甲的年龄。
  • cin >> n; 使用cin从标准输入读取甲的年龄。
  • int tenDigit = n / 10;int oneDigit = n % 10; 分别提取出甲年龄的十位数和个位数。
  • int reverseAge = oneDigit * 10 + tenDigit; 通过倒序组合甲年龄的个位和十位来计算乙的年龄。
  • 使用if-else语句比较甲和乙的年龄大小,如果甲的年龄大于乙的年龄,则输出甲的年龄;否则输出乙的年龄。
  • cout << n << endl;cout << reverseAge << endl; 使用cout输出较大的年龄。

这种方法通过if-else语句明确地比较了甲和乙的年龄大小,并根据比较结果输出较大的年龄,逻辑更加清晰直观。

1626. 暑假的旅游计划

问题描述

小华根据语文、数学、英语三门功课的平均分决定暑假旅游的目的地。如果平均分90分或以上,计划去北京旅游;如果平均分低于90分,则选择去南京。

解题思路

首先计算小华语文、数学、英语三门功课的平均分。根据平均分的高低,判断小华的旅游目的地。

  1. 计算平均分:将三门功课的成绩相加后除以3,得到平均分。
  2. 判断旅游目的地:如果平均分大于等于90分,输出"beijing";否则,输出"nanjing"。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int x, y, z; // 定义变量存储小华的三门功课成绩
    cin >> x >> y >> z; // 从标准输入读取成绩

    double average = (x + y + z) / 3.0; // 计算平均分

    // 根据平均分判断并输出旅游目的地
    if (average >= 90) {
        cout << "beijing" << endl;
    } else {
        cout << "nanjing" << endl;
    }

    return 0; // 程序结束
}
代码解析
  • int x, y, z; 定义三个整型变量来存储小华的语文、数学、英语成绩。
  • cin >> x >> y >> z; 通过标准输入接收小华的三门功课成绩。
  • double average = (x + y + z) / 3.0; 计算小华三门功课的平均分。
  • 使用if-else语句根据平均分的高低判断小华的暑假旅游目的地,满足90分或以上则输出"beijing",低于90分则输出"nanjing"。

这样的实现能够根据小华的成绩平均分准确输出其暑假旅游的目的地。

1627. 暑期的旅游计划(2)

问题描述

小华的暑期旅游目的地取决于他的考试成绩。如果他在语文、数学、英语三门功课中至少有一门考到90分或以上,他将去北京旅游;如果三门功课都没有达到90分,他将去南京玩。

解题思路

要确定小华的旅游目的地,首先检查他的三门功课成绩,看是否至少有一门成绩达到90分或以上。

  1. 检查成绩:逐一比较三门功课的成绩与90分。
  2. 决定旅游目的地:如果至少有一门成绩达到90分,目的地为北京;否则,为南京。
  3. 输出目的地:根据上述判断输出相应的旅游目的地。
代码实现
#include <iostream>
using namespace std;

int main() {
    int x, y, z; // 定义变量存储小华的三门功课成绩
    cin >> x >> y >> z; // 从标准输入读取成绩

    // 检查是否至少有一门成绩达到90分
    if (x >= 90 || y >= 90 || z >= 90) {
        cout << "beijing" << endl; // 至少一门成绩达到90分,去北京
    } else {
        cout << "nanjing" << endl; // 三门功课成绩都未达到90分,去南京
    }

    return 0; // 程序结束
}
代码解析
  • int x, y, z; 定义三个整型变量来存储小华的语文、数学、英语成绩。
  • cin >> x >> y >> z; 从标准输入读取小华的三门功课成绩。
  • 使用if语句检查小华的成绩是否满足至少一门达到90分的条件。
  • 根据成绩条件,使用cout输出小华的旅游目的地是北京或南京。

这种方法能准确判断小华的成绩是否满足去北京旅游的条件,并输出相应的旅游目的地。

1628. 三位数是否对称

问题描述

给定一个三位整数,判断它是否为对称数。对称数意味着该数倒序排列后仍然与原数相同。

解题思路

要判断一个三位数是否是对称数,可以将该数的个位与百位数比较:

  1. 提取百位数:通过整除100得到。
  2. 提取个位数:通过对10取余得到。
  3. 比较百位和个位数:如果它们相等,则该三位数是对称数;否则,不是。
代码实现
#include <iostream>
using namespace std;

int main() {
    int number; // 定义变量存储输入的三位整数
    cin >> number; // 从标准输入读取三位整数

    int hundred = number / 100; // 获取百位数
    int one = number % 10; // 获取个位数

    // 判断是否为对称数并输出结果
    if (hundred == one) {
        cout << "Y" << endl;
    } else {
        cout << "N" << endl;
    }

    return 0; // 程序结束
}
代码解析
  • int number; 定义一个整型变量number来存储用户输入的三位整数。
  • cin >> number; 使用cin从标准输入读取这个三位数。
  • int hundred = number / 100;int one = number % 10; 分别计算出三位数的百位数和个位数。
  • 使用if-else语句比较百位和个位数是否相等。如果相等,则输出Y表示是对称数;如果不相等,则输出N表示不是对称数。

通过这种方式,可以准确地判断一个三位数是否为对称数,并按要求输出结果。

1629. 六位数是否对称

问题描述

给定一个六位整数,判断它是否为对称数。对称数意味着该数倒序排列后仍然与原数相同。

解题思路

要判断一个六位数是否是对称数,可以分别比较它的第一位与第六位、第二位与第五位、第三位与第四位是否相等:

  1. 提取每一位数:通过整除和取余的方式获取每一位上的数字。
  2. 比较对应位数:比较第一位与第六位,第二位与第五位,第三位与第四位是否相等。
  3. 输出结果:如果上述比较都相等,则该数是对称数,输出“Y”;否则,输出“N”。
代码实现
#include <iostream>
using namespace std;

int main() {
    int number; // 定义变量存储输入的六位整数
    cin >> number; // 从标准输入读取六位整数

    // 提取每一位数
    int digit1 = number / 100000;
    int digit2 = (number / 10000) % 10;
    int digit3 = (number / 1000) % 10;
    int digit4 = (number / 100) % 10 % 10;
    int digit5 = (number / 10) % 10 % 10 % 10;
    int digit6 = number % 10;

    // 判断是否为对称数并输出结果
    if (digit1 == digit6 && digit2 == digit5 && digit3 == digit4) {
        cout << "Y" << endl;
    } else {
        cout << "N" << endl;
    }

    return 0; // 程序结束
}
代码解析
  • int number; 定义一个整型变量number来存储用户输入的六位整数。
  • cin >> number; 使用cin从标准输入读取这个六位数。
  • 分别计算出六位数的每一位数字,利用整除(/)和取余(%)操作。
  • 使用if-else语句比较对应位的数字是否相等。如果每一对比较都相等,则输出Y表示是对称数;如果有任意一对不相等,则输出N表示不是对称数。

这种方法能够准确判断一个六位数是否为对称数,并按要求输出结果。

1630. 打电话

问题描述

根据通话时间计算电话费用。通话时间在10分钟内按1.5元/分钟收费,超过10分钟按1.2元/分钟收费。

解题思路

计算应付金额的步骤如下:

  1. 判断通话时间:如果通话时间小于10分钟,则使用1.5元/分钟的费率;如果通话时间大于等于10分钟,则使用1.2元/分钟的费率。
  2. 计算费用:根据通话时间和对应的费率计算总费用。
  3. 输出费用:输出计算结果,保留1位小数。
代码实现
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n; // 定义变量存储通话时间
    cin >> n; // 从标准输入读取通话时间

    double fee; // 定义变量存储应付金额
    if (n < 10) {
        fee = n * 1.5; // 通话时间小于10分钟的费用计算
    } else {
        fee = n * 1.2; // 通话时间大于等于10分钟的费用计算
    }

    // 输出应付金额,保留一位小数
    cout << fixed << setprecision(1) << fee << endl;

    return 0; // 程序结束
}
代码解析
  • int n; 定义一个整型变量n来存储用户输入的通话时间。
  • cin >> n; 使用cin从标准输入读取通话时间。
  • double fee; 定义一个双精度浮点数变量fee来计算应付金额。
  • 使用if-else语句根据通话时间选择合适的费率进行计算。
  • cout << fixed << setprecision(1) << fee << endl; 使用cout输出应付金额,并通过fixedsetprecision(1)确保结果保留一位小数。

这样,程序能够根据通话时间正确计算并输出应付的电话费用。

1631. 计算密码

问题描述

给定一个六位整数,需要根据其前三位和后三位的大小关系重新排列组合,以确保较大的三位数位于前面。

解题思路

要重新组合这个六位数:

  1. 提取前三位和后三位数:通过整除和取余操作分别提取。
  2. 比较大小:比较前三位数和后三位数的大小。
  3. 根据比较结果重新组合:如果前三位小于后三位,则交换位置;否则,保持原顺序。
代码实现
#include <iostream>
using namespace std;

int main() {
    int number; // 定义变量存储六位整数
    cin >> number; // 从标准输入读取六位整数

    int firstHalf = number / 1000; // 提取前三位数
    int secondHalf = number % 1000; // 提取后三位数

    // 比较前三位和后三位数的大小,并根据结果重新组合
    if (firstHalf < secondHalf) {
        // 交换前后三位数的位置
        number = secondHalf * 1000 + firstHalf;
    }
    // 如果firstHalf >= secondHalf,则不需要交换,直接保留原数

    // 输出重新组合后的六位数
    cout << number << endl;

    return 0; // 程序结束
}
代码解析
  • int number; 定义一个整型变量number来存储用户输入的六位整数。
  • cin >> number; 使用cin从标准输入读取这个六位数。
  • 通过整除(/1000)和取余(%1000)操作,分别提取出六位数的前三位和后三位数字。
  • 使用if语句比较前三位数和后三位数的大小。如果前三位小于后三位,则通过算术运算交换它们的位置,并重新组合成一个六位数。
  • cout << number << endl; 使用cout输出重新组合后的六位数。

这种方式可以准确地根据前三位和后三位数的大小关系,重新组合出符合要求的六位数,并输出结果。

1030. 心系南方灾区

问题描述

北京市组织救灾物资运送活动,需要计算将所有大衣运往灾区所需的最少卡车数量。已知大衣总数和每辆卡车的最大装载量。

解题思路

要计算所需的最少卡车数量,我们可以:

  1. 确定每辆卡车的最大装载量((n)件大衣)。
  2. 根据大衣总数((m)件)和卡车最大装载量计算所需卡车数量。
  3. 如果大衣总数除以卡车最大装载量有余数,则需要额外一辆卡车来装载剩余的大衣。
代码实现
#include <iostream>
using namespace std;
int main() {
    int m, n; // 定义变量存储大衣总数和卡车最大装载量
    cin >> m >> n; // 从标准输入读取大衣总数和卡车最大装载量
    int trucks; // 定义变量存储所需卡车数量
    
    // 计算所需卡车数量
    trucks = m / n;
    
    // 如果有余数则额外需要一辆卡车
    if (m % n != 0) {
        trucks++;
    }
    
    // 输出所需的卡车数量
    cout << trucks << endl; 
    
    return 0; // 程序结束
}
代码解析
  • int m, n; 定义两个整型变量mn来分别存储大衣总数和每辆卡车的最大装载量。
  • cin >> m >> n; 使用cin从标准输入读取大衣总数和卡车最大装载量。
  • trucks = m / n; 使用整数除法计算基本所需卡车数量。
  • 使用if语句判断大衣总数除以卡车最大装载量是否有余数,如果有余数,则trucks自增1,表示额外需要一辆卡车。
  • cout << trucks << endl; 输出计算得到的所需最少卡车数量。

1045. 判断能否构成三角形

问题描述

给定三条线段的长度,需要判断这三条线段能否构成一个三角形。

解题思路

要判断三条线段是否能构成三角形,需满足三角形的两边之和大于第三边的条件。具体来说:

  1. 线段A加线段B的长度要大于线段C的长度。
  2. 线段A加线段C的长度要大于线段B的长度。
  3. 线段B加线段C的长度要大于线段A的长度。

如果上述条件都满足,则这三条线段能构成一个三角形;否则,不能构成三角形。

代码实现
#include <iostream>
using namespace std;

int main() {
    int a, b, c; // 定义变量存储三条线段的长度
    cin >> a >> b >> c; // 从标准输入读取三条线段的长度

    // 判断能否构成三角形并输出结果
    if (a + b > c && a + c > b && b + c > a) {
        cout << "Yes" << endl; // 能构成三角形
    } else {
        cout << "No" << endl; // 不能构成三角形
    }

    return 0; // 程序结束
}
代码解析
  • int a, b, c; 定义三个整型变量abc来分别存储三条线段的长度。
  • cin >> a >> b >> c; 使用cin从标准输入读取三条线段的长度。
  • 使用if语句检查三条线段是否满足构成三角形的条件。如果满足,则输出Yes表示能构成三角形;如果不满足,则输出No表示不能构成三角形。

这样的方法可以准确判断给定的三条线段是否能构成一个三角形,并按要求输出结果。

1324. 扩建鱼塘问题

问题描述

给定一个矩形鱼塘的尺寸(m×n),需要计算将其扩建成正方形所需增加的最小面积。

解题思路

要将矩形鱼塘扩建成正方形,其边长应为原矩形边长中的较大值。因此,需要首先确定矩形较长的一边,然后计算将矩形扩建为这个边长的正方形所增加的面积。

  1. 确定正方形的边长:较长的边长即为(m)和(n)中的较大值。
  2. 计算正方形的面积:正方形的面积为较长边长的平方。
  3. 计算增加的面积:正方形的面积减去原矩形的面积即为增加的面积。
代码实现
#include <iostream>
using namespace std;

int main() {
    int m, n; // 定义变量存储矩形的长和宽
    cin >> m >> n; // 从标准输入读取矩形的长和宽

    int maxLength = max(m, n); // 确定正方形的边长
    int originalArea = m * n; // 计算原矩形的面积
    int squareArea = maxLength * maxLength; // 计算扩建后正方形的面积
    int increaseArea = squareArea - originalArea; // 计算增加的面积

    // 输出增加的面积
    cout << increaseArea << endl;

    return 0; // 程序结束
}
代码解析
  • int m, n; 定义两个整型变量mn来分别存储矩形的长和宽。
  • cin >> m >> n; 使用cin从标准输入读取矩形的长和宽。
  • int maxLength = max(m, n); 计算出矩形较长的一边作为正方形的边长。
  • int originalArea = m * n; 计算原矩形的面积。
  • int squareArea = maxLength * maxLength; 计算扩建成正方形后的面积。
  • int increaseArea = squareArea - originalArea; 计算需要增加的面积。
  • cout << increaseArea << endl; 输出增加的面积。

通过这种方法,可以准确计算出将矩形鱼塘扩建成正方形所需增加的最小面积,并输出结果。

1309. 最多能倒多少杯水

问题描述

考虑一个电水箱的容量以及杯子的平均容量,计算出使用这个电水箱烧开的水最多能够倒满多少杯。

解题思路

要计算最多能倒多少杯水,可以将电水箱的容量(升)转换为毫升,然后除以杯子的平均容量(毫升)。如果有余数,表示还能再倒满至少一杯,即不足一杯算一杯。

  1. 电水箱容量转换为毫升:因为1升等于1000毫升,所以将电水箱的容量乘以1000。
  2. 计算能倒满的杯数:用电水箱的总容量(毫升)除以一个杯子的平均容量(毫升)。
  3. 考虑余数:如果除法有余数,总杯数加1。
代码实现
#include <iostream>
using namespace std;

int main() {
    int n, x; // n代表电水箱的容量(升),x代表杯子的平均容量(毫升)
    cin >> n >> x; // 从标准输入读取电水箱容量和杯子平均容量

    // 计算电水箱的总容量转换为毫升
    int totalCapacity = n * 1000;
    // 计算最多能倒多少杯水
    int cups = totalCapacity / x;
    // 如果有余数,表示还能再倒满至少一杯
    if (totalCapacity % x != 0) {
        cups += 1; // 不足一杯算一杯
    }

    // 输出最多能倒多少杯水
    cout << cups << endl;

    return 0; // 程序结束
}
代码解析
  • int n, x; 定义两个整型变量nx分别代表电水箱的容量(升)和杯子的平均容量(毫升)。
  • cin >> n >> x; 从标准输入读取电水箱容量和杯子平均容量。
  • int totalCapacity = n * 1000; 将电水箱的容量转换为毫升。
  • int cups = totalCapacity / x; 计算能够完全倒满的杯数。
  • if (totalCapacity % x != 0) { cups += 1; } 判断是否有余数,如果有,表示还能再倒满至少一杯,故杯数加1。
  • cout << cups << endl; 输出计算得到的最多能倒多少杯水。

这样的方法可以准确计算出使用一个电水箱烧开的水最多能倒满多少杯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天秀信奥编程培训

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值