第二次作业(判断)
00 分钟
2024-4-20
这次作业够简单就不 全写了,吧一些难的给你分析分析

收集瓶盖赢大奖

某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。若可以兑换大奖,输出1,否则输出0。

判断一个数能否同时被3和5整除

判断能否被3,5,7整除

这道题就难喽,费了我好长时间!
这里是代码的逐一分析哦:
  1. #include <iostream>:包含了 C++ 标准库中用于输入输出的头文件。
  1. using namespace std;:使用了 std 命名空间,避免在代码中频繁使用 std:: 前缀。
  1. int main() {:程序的入口点,main 函数开始。
  1. int n;:定义一个整数变量 n,用于存储用户输入的值。
  1. cin >> n;:从标准输入流中读取用户输入的整数,并将其存储在变量 n 中。
接下来是主要的逻辑部分:
  1. if (n % 3 == 0 and n % 5 == 0 and n % 7 == 0):如果输入的整数同时能被3、5、7整除,则输出 "3 5 7"。
  1. else if (n % 3 == 0 or n % 5 == 0 or n % 7 == 0):如果输入的整数不能同时被3、5、7整除,进入下一个判断。
  1. if (n % 3 == 0):如果能被3整除,进入内部判断。
      • if (n % 5 == 0):如果同时能被3和5整除,进入内部判断。
        • if (n % 7 == 0):如果同时能被3、5和7整除,输出 "3 5 7"。
        • else:如果不能同时被7整除,输出 "3 5"。
      • else if (n % 7 == 0):如果能被3和7整除,输出 "3 7"。
      • else:如果只能被3整除,输出 "3".
  1. else if (n % 5 == 0):如果不能被3整除但能被5整除,进入内部判断。
      • if (n % 7 == 0):如果能被5和7整除,输出 "5 7"。
      • else:如果只能被5整除,输出 "5".
  1. else:如果不能被3、5、7整除,输出 "7"。
  1. else:如果输入的整数不满足以上条件,输出 "n"。
最后,return 0; 表示程序正常结束并返回值0。
 

有一门课不及格的学生

这里进解释第一个if的这一行代码
解释如下:
在这段代码中,条件语句 if ((a < 60 && b >= 60) || (a >= 60 && b < 60)) 是一个逻辑表达式,它包含了两个条件组合,通过逻辑运算符 &&(逻辑与)和 ||(逻辑或)进行组合。
让我们分解这个条件语句:
  • (a < 60 && b >= 60):这个条件表示当 a 小于60且 b 大于等于60 时为真。
  • (a >= 60 && b < 60):这个条件表示当 a 大于等于60且 b 小于60 时为真。
整个条件语句是通过逻辑或运算符 || 连接起来的,这意味着只要其中任意一个条件为真,整个条件语句就为真。
因此,整个条件语句 if ((a < 60 && b >= 60) || (a >= 60 && b < 60)) 的含义是:如果 a 小于60且 b 大于等于60,或者 a 大于等于60且 b 小于60,则执行 cout << "1";,否则执行 cout << "0";
换句话说,这行代码的作用是判断 a 和 b 的取值,如果一个小于60而另一个大于等于60,就输出 "1",否则输出 "0"。

骑车与走路

这个代码非常有意思啊,可算碰到一个简单的题了,之前的题给我脑袋瓜给我转冒烟了!
这个就不解释了,太简单了!

分段函数

哇,当我看到 这个题,我直接傻掉了
我开始想,得变量三个数,让后吧关系式写出来,但是我发现,写判断的时候太冗杂了吧,不够简单。
之后我又想到,其实可以这样子,写个范围在这里面。就是这个一段的函数,
我这脑子,转速有点慢请大家接受,做完我才发现,这就是个分段函数啊!
要分段数算,所以说,代码如下:
超级简单!!
解释如下:
  1. #include <iostream>:包含了输入输出流的头文件。
  1. using namespace std;:使用了标准命名空间std,这样就可以直接使用标准库中的函数和对象,而不需要在每个函数前面加上std::
  1. int main() {:程序的入口点,main函数开始。
  1. int N;:定义了一个整数变量N,用来存储输入的值。
  1. cin >> N;:从标准输入流中读取一个整数,并将其存储在变量N中。
  1. if (0 <= N && N < 5):如果N在0到5之间(不包括5),则执行以下代码块。
      • cout << -N + 2;:计算-N+2的值,并输出结果。
  1. else if (5 <= N && N < 10):如果N在5到10之间(不包括10),则执行以下代码块。
      • cout << 2 - 3 * (N - 3) * (N - 3);:计算2-3*(N-3)*(N-3)的值,并输出结果。
  1. else if (10 <= N && N < 20):如果N在10到20之间(不包括20),则执行以下代码块。
      • cout << N * N - 1;:计算N的平方减1的值,并输出结果。
  1. return 0;:返回0,表示程序正常结束。
  1. }:main函数结束。

计算邮资

哇,又是一个烧脑的问题。
其实也很简单,原理就是这样子的。
先判断输入的数字减去1000,是否小于0,再判断是否加急,那么就可以得到总价
如果是小于0,说明重量大于1000,既然如此,我们就除以500,就得出了需要有几段500g,要么有余数,要么没有余数,无余数就是算出的几段*4 ,有余数的话就再加上一个4不就ok了?
那么我们直接吧基本的价钱+超过的价钱+加急的价钱 = 总价钱
致辞,我们就算出来了!
代码如下:
注:我的代码你可能看不懂,那就看解释跟着来!
解释如下:
  1. #include <iostream>:包含了输入输出流的头文件。
  1. #include <cmath>:包含了数学函数的头文件,尽管在这个程序中并没有使用到。
  1. using namespace std;:使用了标准命名空间std,这样就可以直接使用标准库中的函数和对象,而不需要在每个函数前面加上std::
  1. int main() {:程序的入口点,main函数开始。
  1. int weight, jiben = 8, chao = 4, jia = 5, all;:定义了整数变量weight(重量)、jiben(基本运费)、chao(超出部分的运费)、jia(加急费用)和all(总运费)。
  1. char ji;:定义了一个字符变量ji,用来存储输入的字符。
  1. cin >> weight >> ji;:从标准输入流中读取一个整数(重量)和一个字符,并将它们分别存储在weight和ji中。
  1. all = jiben;:将基本运费赋值给总运费all。
  1. if (weight >= 1000):如果重量大于等于1000,则执行以下代码块。
      • int other = weight - 1000;:计算超出1000克的重量。
      • all += (other / 500) * chao;:将超出部分按照每500克收取一次超出费用,累加到总运费中。
      • if (other % 500 != 0):如果超出部分不是500的整数倍,则执行以下代码块。
        • all += chao;:再额外收取一次超出费用。
  1. if (ji == 'y'):如果输入的字符是'y',则执行以下代码块。
      • all += jia;:将加急费用加到总运费中。
  1. cout << all << endl;:输出总运费,并换行。
  1. return 0;:返回0,表示程序正常结束。
  1. }:main函数结束。
 

完工,总结

还是有点难度,但是是第二名,这就是实力 !
notion image

评论