zoukankan      html  css  js  c++  java
  • Codeforces GYM 100114 C. Sequence 打表

    C. Sequence

    Time Limit: 1 Sec  

    Memory Limit: 256 MB

    题目连接

    http://codeforces.com/gym/100114

    Description

    Integer sequences are very interesting mathematical objects. Let us examine a sequence generated with the use of two operations: doubling and “digit sorting”. The latter operation consists in ascending-order sort of the individual digits in the decimal representation of the argument. For example, “digit sorting” of number 5726 gives 2567. The first member of the considered sequence is 1. To generate a member of the sequence from the previous member, double the previous one and apply “digit sorting” to the result. The first 15 members of the sequence are as follows: 1, 2, 4, 8, 16, 23, 46, 29, 58, 116, 223, 446, 289, 578, 1156, … Write a program to determine the value of the n-th member of this sequence.

    Input

    The first line contains an integer n, the number of sequence member to be calculated.

    Output

    The output file should contain a single integer k, the value of the n-th member of the sequence

    Sample Input

    1

    Sample Output

    1

    HINT

    1 ≤ n ≤ 2 147 483 647.

    题意

    1, 2, 4, 8, 16, 23, 46, 29, 58, 116, 223, 446, 289, 578, 1156

    规律是上一个,是前一个数乘以2之后,数字按字典序排列之后的样子

    题解:

    打表之后,发现后面都是6个一个循环的,直接输出就好了

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int a[40]={0,1,2,4,8,16,23,46,29,58,116,223,446,289,578,1156,1223,2446,2489,4789,5789,11578,12356,12247,24449};
    int b[10]={48889,77789,155578,111356,122227,244445};
    int n;
    
    int main()
    {
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
        scanf("%d",&n);
        if(n<=24) printf("%d
    ",a[n]);
            else printf("%d
    ",b[(n-25)%6]);
        return 0;
    }
  • 相关阅读:
    第六周学习进度条
    软件工程结对作业01---返回一个整数数组中最大子数组的和
    第五周学习进度条
    第四周学习进度条
    浅谈欧几里得算法求最大公约数(GCD)的原理及简单应用
    解析 static auto x = []() { std::ios::sync_with_stdio(false);std::cin.tie(nullptr);return 0;}()
    linux下Qt5 编译出现cannot find -IGL问题修复
    关于AD10如何输出自己想要的BOM表
    什么是Ajax
    selenium 安装与 chromedriver安装
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4780555.html
Copyright © 2011-2022 走看看