注意!退出的条件有2个;
里层循环一旦达到结束条件就应该break,否则会出错。
using namespace std;
#include<iostream>
int main(){
int n,k,flag[1005];
cin>>n>>k;
int i,num=1,m;
m=n;
for(i=1;i<=n;i++) flag[i]=1;
while(m!=1){
for(i=1;i<=n;i++){
if(flag[i]==1){
if(num%k == 0 || (num-num/10*10)==k){
flag[i]=0;
m--;
if(m==1) break;//!!!
}
num++;
}
}
}
for(i=1;i<=n;i++){
if(flag[i]!=0){
cout<<i;
break;
}
}
return 0;
}