• NOIP2006 数列


    codevs 1141 数列

    http://codevs.cn/problem/1141/

    2006年NOIP全国联赛普及组

     时间限制: 1 s
     空间限制: 128000 KB
     
     
    题目描述 Description

    给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:

    1,3,4,9,10,12,13,…

    (该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)

    请你求出这个序列的第N项的值(用10进制数表示)。

    例如,对于k=3,N=100,正确答案应该是981。

    输入描述 Input Description

    只有1行,为2个正整数,用一个空格隔开:

    k N(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)

    输出描述 Output Description

    为计算结果,是一个正整数(可能较大你懂的)。(整数前不要有空格和其他符号)

    样例输入 Sample Input

    3 100

    样例输出 Sample Output

    981

    以样例为例:

    100=2^6+2^5+2^2

    所以ans=3^6+3^5+3^2=981

    #include<cmath>
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int c[10],bit[10];
    int main()
    {
        int n,k;
        scanf("%d%d",&n,&k);
        bit[0]=1; for(int i=1;i<=9;i++)  bit[i]=bit[i-1]<<1;
        for(int i=9;i>=0;i--)
            if(k>=bit[i]) 
            {
                c[++c[0]]=i;
                k-=bit[i];
            }
        long long ans=0;
        for(int i=1;i<=c[0];i++) ans+=pow(n,c[i]);
        cout<<ans;
    }
  • 相关阅读:
    向量场中的积分
    Oracle 动态视图4 V$SESSION_WAIT & V$SESSION_EVENT
    Oracle 动态视图3 V$SESSION
    Oracle 动态视图2 V$LOCKED_OBJECT
    Oracle 摘去数据块的面纱
    Oracle 动态视图1 V$LOCK
    Oracle Lock 概述
    Oracle 监听动态注册与静态注册
    Oracle用户进程跟踪
    Oracle SGA参数调整
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/7077140.html
Copyright © 2020-2023  润新知