你看看你计算了多少无用的数据,题目最后只是要求的第n个灯的状态,你的第一个for循环计算其他的灯的状态干嘛?没用吧。你只需要计算最后一个灯的状态,看看最后一个灯变换了多少次,变换了偶数次就还是状态0,奇数次就是1。
递归方法错了
#include
using namespace std;
int main()
{
int a[1001] = ;
int b[1001] = ;
int n;
for(int i=1;i<1001;i++)
{
a[i] = (b[i-1] + b[i-1])%10000;
b[i] = (a[i-1] + b[i-1])%10000;
}
while(cin>>n,n)
{
cout << a[n]<< endl;
}
return 0;
}