关于死循环的问题,如何解决?


#include
#include
#include
using namespace std;
int main()
{
    int n,a,s=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        while(i!=0){
        a=i%10;
        if(a==6){
            s++;
        }
        i/=10;
    }
    }
    
    if(s%2==0){
        cout<<"playground";
    } else{
        cout<<"library";
    }
    return 0;
}

为什么是死循环?

i/=10,这就导致死循环了啊。
当i为1时,i/=10后i就是0,以后就一直是0啦,每次循环++后为1,只要n值大于1,这就是个死循环

i变量作为循环条件,又作为计算,在while里面计算i为0了,在for循环里面i++加1后计算又是0,所以i一直是0,1,0,1死循环了。