13. 倍数
题目编号:Exp02-Basic07,GJBook3-03-07
题目名称:倍数
题目描述:任意一个整数n,如果n能同时被3、5、7整除,则n是3、5、7的倍数,如果n只能同时被其中的两个数整除,则n是两个数的倍数,如果n只能被其中一个数整除,则n是一个数的倍数,否则n不是3、5、7的倍数。
输入:输入一个整数。输出:按照是否是倍数输出。
样例1:输入:105输出:3,5,7样例2:
输入:30输出:3,5样例3:
输入:21输出:3,7样例4:
输入:35输出:5,7样例5:
输入:14输出:7样例6:
输入:101输出:NULL
有的同学居然这样写代码,真让人眼前一亮,写的很好,下次不要写了
虽然没有问题,运行的结果也对,但是考试时的时间是比较宝贵的
#include <iostream> using namespace std; int main() { long long n=0; cin >> n; if ((n % 3 == 0) && (n % 5 == 0) && (n % 7 == 0)) cout << "3,5,7" << endl; else if ((n % 3 == 0) && (n % 5 == 0) && (n % 7 != 0)) cout << "3,5" << endl; else if ((n % 3 == 0) && (n % 5 != 0) && (n % 7 == 0)) cout << "3,7" << endl; else if ((n % 3 != 0) && (n % 5 == 0) && (n % 7 == 0)) cout << "5,7" << endl; else if ((n % 3 == 0) && (n % 5 != 0) && (n % 7 != 0)) cout << "3" << endl; else if ((n % 3 != 0) && (n % 5 == 0) && (n % 7 != 0)) cout << "5" << endl; else if ((n % 3 != 0) && (n % 5 != 0) && (n % 7 == 0)) cout << "7" << endl; else cout << "NULL" << endl; return 0; }
但我们可以适当的将这个问题"简化"
#include <iostream> using namespace std; int main() { long long n=0; int flag = 0; cin >> n; if (n % 3 == 0) { cout << "3"; flag=1; } if (n % 5 == 0) { if (flag)cout << ","; cout << "5"; flag = 1; } if (n % 7 == 0) { if (flag)cout << ","; cout << "7"; } if ((n % 3 != 0) && (n % 5 != 0) && (n % 7 != 0)) cout << "NULL"; return 0; }
有一点你需要注意的是,“,”的输出----只有当某个数之前还有数时再输出逗号
14. 养老金
题目编号 :Exp02-Basic04
题目名称:养老金
题目描述:某一国家养老金发放的原则是:
(1)男人(假设用数字1表示)超过65岁每周给50元钱,如果超过70岁每周再加20元钱。
(2)女人(假设用数字2表示)超过60岁每周给45元钱,如果超过65岁每周再加25元钱。
编程序,读入一个人的性别和年龄,输出他每周可领养老金数额。如果一个人还没到拿取养老金的年龄,那么就输出一个适合的信息。
输入:输入一行包括2个整数,分别对应性别和年龄,输入保证性别年龄输入都为合理整数。输出:如果达到领取养老金年龄,就请输出每周应得养老金数额;否则输出NULL。
样例1:
输入: 1 75输出: 70样例2:
输入: 2 63输出: 45
这个题目相对比较简单,厘清思路后直接写即可
#include <iostream> using namespace std; int main() { int s, age; cin >> s >> age; if (s == 1) { if ((age > 65) && (age <= 70)) cout << "50"; if ((age > 70)) cout << "70"; if (age <= 65) cout << "NULL"; } if (s == 2) { if ((age > 60) && (age <= 65)) cout << "45"; if (age > 65) cout << "70"; if (age <= 60) cout << "NULL"; } return 0; }
15. 数字求和
题目编号 :Exp02-Basic03
题目名称:数字求和
题目描述:给定一个整数a,以及另外的5个整数,问题是:这5个整数中,可以被a整除的整数和是多少?
输入:输入一行只包括6个小于100的整数,其中第一个整数是a,输入保证a不为零。
输出:输出一行,给出一个整数,是5个数中可以被a整除的所有整数的和。
样例1:输入:10 10 -20 30 40 11输出:60样例2:
输入:11 10 20 30 40 12输出:0
#include <iostream> using namespace std; int main() { int a, sum=0; int num[5]; cin >> a; for (int i = 0;i < 5;i++) { cin >> num[i]; } for (int i = 0;i < 5;i++) { if (num[i] % a != 0) num[i] = 0; sum += num[i]; } cout << sum << endl; return 0; }
随着这个题代码的编译完成,我们的 实验02 分支与循环程序设计(2021级)就到此为止了,
此处应有掌声为自己鼓励
回想之前发的几篇博客,我们学到了什么?掌握了什么?以及考试的时候怎么能快速简洁的编出正确的代码,提交测试的时候一遍过?
对细节的掌握,阶乘,打表,优美的for循环,还有C++的输入输出格式
也希望同学们在温习C++的同时跟上学校C的进度,因为OJ测试好像只能写C