zoukankan      html  css  js  c++  java
  • Codeforces1157A(A题)Reachable Numbers

    A. Reachable Numbers

    Let's denote a function f(x)f(x) in such a way: we add 11 to xx, then, while there is at least one trailing zero in the resulting number, we remove that zero. For example,

    • f(599)=6f(599)=6: 599+1=600606599+1=600→60→6;
    • f(7)=8f(7)=8: 7+1=87+1=8;
    • f(9)=1f(9)=1: 9+1=1019+1=10→1;
    • f(10099)=101f(10099)=101: 10099+1=10100101010110099+1=10100→1010→101.

    We say that some number yy is reachable from xx if we can apply function ff to xx some (possibly zero) times so that we get yy as a result. For example, 102102 is reachable from 1009810098 because f(f(f(10098)))=f(f(10099))=f(101)=102f(f(f(10098)))=f(f(10099))=f(101)=102; and any number is reachable from itself.

    You are given a number nn; your task is to count how many different numbers are reachable from nn.

    Input

    The first line contains one integer nn (1n1091≤n≤109).

    Output

    Print one integer: the number of different numbers that are reachable from nn.

     1 #include<bits/stdc++.h>
     2 #include<set>
     3 using namespace std;
     4 typedef long long ll;
     5 int f(int x) {
     6     while((x+1)%10==0) {
     7         x=(x+1)/10-1;
     8     }
     9     x=x+1;
    10     return x;
    11 }
    12 int main() {
    13     ll n,cnt=0;
    14     bool flag=true;
    15     set <int > d;
    16     cin>>n;
    17     ll a=n;
    18     d.insert(a);
    19     while(flag) {
    20         a=f(a);
    21         cnt++;
    22         for(set<int>::iterator it=d.begin(); it!=d.end(); it++) {
    23             if(*it==a) {
    24                 cout<<cnt;
    25                 return 0;
    26             }
    27         }
    28         d.insert(a);
    29     }
    30 }

    思路分析:先编写去尾数0的函数,然后将每次调用函数后的值存入集合,遍历集合,要新加入集合的数等于集合内有的数就退出并同时输出集合元素个数。

  • 相关阅读:
    在下拉框中选择数据
    代码添加批处理类
    重置用户状态(初始化用户)
    当前窗口控制(显示、隐藏、破坏)
    窗体分隔符实现
    使用USB移动硬盘 遭遇 "Windows无法为Volume加载安装程序。请于硬件供应商联系,寻求协助" 错误,“灰鸽子”后遗症的处理
    使用IDL创建TypeLib(.tlb)文件
    ngrep使用方法
    常用的正则表达式
    治疗鼻炎的药
  • 原文地址:https://www.cnblogs.com/yuanhang110/p/11239655.html
Copyright © 2011-2022 走看看