蒜头君今天回到了老家的大宅院,老家的灯还是那中拉线的灯(拉一次为亮,再拉一次就灭),蒜头君觉得无聊。把 10001000 盏灯 33 的倍数拉了一次,55的倍数拉了一次,7的倍数拉了一次(灯得的编号从 1-10001−1000,灯的初始状态都是亮的)。这个时候蒜头君在想还剩下几盏灯还在亮着?
提示:请不要输出多余的符号。
要注意,先把3的倍数拉了,再拉5的倍数,最后拉7的倍数。
因为假如一个数既是3的倍数,又是5的倍数,就会被拉两次。
#include<iostream> #include<cstring> using namespace std; int main() { int n,m,j,k,i,T,sum=0; bool a[2000]; memset(a,1,sizeof(a)); for(i=1;i<=1000;i++) { if (i%3==0) { if (a[i]==true) a[i]=false; else a[i]=true; } } for(i=1;i<=1000;i++) { if (i%5==0) { if (a[i]==true) a[i]=false; else a[i]=true; } } for(i=1;i<=1000;i++) { if (i%7==0) { if (a[i]==true) a[i]=false; else a[i]=true; } } for (i=1;i<=1000;i++) sum+=a[i]; cout<<sum<<endl; return 0; }