64,266
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset <32> bits;
int x=1,y=0,z=0;
while(z <=21)
{
y=x;
x=z;
z=x+y;
bits.set(z);
}
cout <<"bits: " <<bits <<endl;
return 0;
}
因为z==21后,进入while循环,z=34,而对于bits.set(34)肯定会报错
而如果把bits.set(z)放在开头,那么z就不会出现=34的情况!!
z = 34 是因为z=x+y引起的@
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset <32> bits;
int x=1,y=0,z=0;
while(z <=21)
{
y=x;
x=z;
z=x+y;
cout << "Z" << z << endl;
bits.set(z);
cout << "bits: " <<bits <<endl;
}
return 0;
}