思路:看到说明了吗?已经清楚的表明这是一道数学题了,那我们就来找找方法吧。
首先我们要知道,只有在什么情况下灯才是亮着的。按一次:亮着;按两次:不亮;按三次:又亮
了……发现了吗,只有按奇数次的时候灯才会亮着。
那我们怎么知道一盏灯被按了几次呢?其实自己试验一下,会发现一个数有几个因数就会被几下。
那我们知道因数都是成对出现的,而什么数有奇数个因数呢?对了,就是平方数!!!
那这题就简单多了,题目就变成了:求小于N的所有平方数
这不So Easy了吗,上代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
for(long long i=1;i<=sqrt(n);i++)
cout<<i*i<<" ";
return 0;
}
简单吧,有的题只要想清楚思路,其实一点也不难!