zoukankan      html  css  js  c++  java
  • K-进制数

    题目描述

    考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.

    例:
    1010230 是有效的7位数
    1000198 无效
    0001235 不是7位数, 而是4位数.

    给定两个数N和K, 要求计算包含N位数字的有效K-进制数的总数.

    假设2 <= K <= 10; 2 <= N; 4 <= N+K <= 18.

    输入

    两个十进制整数N和K

    输出

    十进制表示的结果

    样例输入

    2
    10
    

    样例输出

    90
    

    提示

    代码

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    #include<sstream>
    #include<cstdlib>
    #include<map>
    using namespace std;
    typedef long long ll;
    double l,r;
    bool ck(int n,int k)
    {
        string ans="";
        char pre=' ';
        do
        {
            int t=n%k;
            if(t>=0&&t<=9)
            {
                if(t==0&&pre=='0')
                    return false;
                ans+=t+'0';
                pre=t+'0';
            }
            else
                ans+=t-10+'a';
            n/=k;
        }
        while(n!=0);
    
    }
    int a[20];
    int tot=0;
    int n,k;
    void DFS(int p)
    {
        if(p==n)
        {
            tot++;
            return ;
        }
        for(int i=0;i<k;i++)
        {
            if(i==0&&p==0) continue;
            if(a[p-1]==0&&i==0) continue;
            a[p]=i;
            DFS(p+1);
        }
    }
    int main()
    {
        cin>>n>>k;
        for(int i=0;i<20;i++)
            a[i]=0;
        tot=0;
        DFS(0);
        cout<<tot<<endl;
        return 0;
    }
    
    

    思路

    这个题意.... 我理解错了

    N位数字表示的数就是k进制数 而不是十进制数.

    所以。。直接DFS搜吧。

  • 相关阅读:
    Springboot整合activeMq
    linux下安装activeMq
    linux下配置jdk
    thinkphp5 集成 redis
    linux下安装redis
    tp5集成swagger
    lombok
    idea下springboot环境搭建
    Mac环境下maven安装配置
    idea环境下搭建swagger2接口文档
  • 原文地址:https://www.cnblogs.com/xxffxx/p/12002929.html
Copyright © 2011-2022 走看看