do { ll ans = 0; for(int i = 1;i<=n;++i) ans = ans*10+a[i]; if(ans%d == 0) cnt ++; }while(next_permutation(a+1,a+1+n)); 是不是进入循环的时候a数组已经排好了????? 是不是只能用dowhile循环