zoukankan      html  css  js  c++  java
  • RNQOJ 4 数列

    把N化成二进制是关键,比如把序号10化成二进制就是1010,对于K=2来说第10个数就是2^3+2^1,对于k=3来说第10个数就是3^3+3^1;这里只需要把K替代一下就可以解决了

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    #include<vector>
    using namespace std;
    int dig[24];
    int main()
    {
        int k,n;
        while(cin>>k>>n)
        {
           int rel_k=k;
            memset(dig,0,sizeof(dig));
            int temp=0;
            int total=0;
            while(n)
            {
                dig[temp++]=n%2;
                n/=2;
            }
            for(int i=0;i<temp;i++)
            {
                if(i>1)
                {
                    rel_k*=k;
                }
                if(dig[i]&&i==0)
                {
                    total+=1;
                }
                else if(dig[i])
                {
                    total+=rel_k;
                }
            }
            cout<<total<<endl;
        }
        return 0;
    }
  • 相关阅读:
    HDU 1002 A + B Problem II
    leetcode 42.接雨水
    无向图 及其术语
    C++优先队列详解
    C++优先队列详解
    最短路
    最短路
    CF DP练习题
    CF DP练习题
    干货
  • 原文地址:https://www.cnblogs.com/lulichuan/p/6358104.html
Copyright © 2011-2022 走看看