编程语言
首页 > 编程语言> > 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(4)

吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(4)

作者:互联网

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

标签:02,输出,题目,int,样例,整数,超星,程序设计,输入
来源: https://blog.csdn.net/S_CuRrY666/article/details/121414378