CF1570D
这一题考虑使用 map
,因为数组开 $10^9$ 太大了,所以可以考虑使用 map
,开一个数组记录当前值是否会被重复访问,然后删除 $0$ 的操作大佬应该都会,由于 $n \bmod 10$ 就是取 $n$ 的个位,而 $n/10$ 则是将 $n$ 的最后一位删除,所以只要一直删到末尾不为 $0$ 就可以。
代码
#include<bits/stdc++.h>
using namespace std;
int a,cnt;
map<int,int> k;
int main(){
cin>>a;
cnt=1;
while(1){
a+=1;
while(a%10==0){
a/=10;
}
if(k[a]==1){
cout<<cnt;
break;
}
cnt++;
k[a]=1;
}
return 0;
}