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;
}
posted @ 2023-08-14 11:54  very_easy  阅读(9)  评论(0)    收藏  举报  来源