题目描述
蒜头君今天回到了老家的大宅院,老家的灯还是那中拉线的灯(拉一次为亮,再拉一次就灭),蒜头君觉得无聊。把 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;
}