C/C++编程学习 - 第12周 ⑦ 结果填空:开关灯

题目链接

题目描述

蒜头君今天回到了老家的大宅院,老家的灯还是那中拉线的灯(拉一次为亮,再拉一次就灭),蒜头君觉得无聊。把 1000 盏灯 3 的倍数拉了一次,5 的倍数拉了一次,7的倍数拉了一次(灯得的编号从 1−1000,灯的初始状态都是亮的)。这个时候蒜头君在想还剩下几盏灯还在亮着?

提示:请不要输出多余的符号。

Sample Input

Sample Output

思路

模拟开关灯的过程,如果是 3 的倍数,就拉一次(拉一次就是,如果原先是关着的,就把它打开;如果原先是开着的,就把它关掉),如果是 5 的倍数,就拉一次,如果是 7 的倍数,就拉一次。

C++代码1:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	int num[1005] = {
    
    0}, cnt = 0;
	for(int i = 1; i <= 1000; i++)
	{
    
    
		if(i % 3 == 0)
		{
    
    
			if(num[i] == 0) num[i] = 1;
			else num[i] = 0;
		}
		if(i % 5 == 0)
		{
    
    
			if(num[i] == 0) num[i] = 1;
			else num[i] = 0;
		}
		if(i % 7 == 0)
		{
    
    
			if(num[i] == 0) num[i] = 1;
			else num[i] = 0;
		}
	}
	for(int i = 1; i <= 1000; i++)
		if(num[i] == 0) cnt++;
	cout << cnt << endl;
	return 0;
}

C++代码2:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	cout << "571" << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44826711/article/details/113123023