• 【luogu】p1062 数列


    【luogu】p1062 数列

    题目链接:

    https://www.luogu.com.cn/problem/P1062
    题目描述
    给定一个正整数)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。

    输入格式
    2个正整数,用一个空格隔开:

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

    输出格式
    1个正整数。(整数前不要有空格和其他符号)。

    看到好多题解都是转换进制做的,但我太菜了并不会

    啊。这是一道找规律的数学题

    我感觉我写的好乱能看懂就尽量看看叭(表达能力十分有限

    我们先观察3的方幂的数列

    1,3,9,27,81,243……

    对于任意一个数,它一定大于前面所有数之和

    我们从3的2次方开始看

    由于上述规律,我们可以知道3的2次方到3的3次方之间的数字里一定包含3的2次方

    又因为3的2次方之前的数都是递增的,且全由3的不同方幂组成

    3的2次方之后的第一个数便是3的二次方加上数列的第一个数

    第二个数是3的二次方加上数列的第二个数,第三个是加上数列的第三个数……

    所以在序列每一个数的组成中

    最大数为3的0次方的数有一个

    最大数为3的1次方的数有1+1=2个

    最大数为3的2次方的数有1+1+2=4个

    最大数为3的3次方的数有1+1+2+4=8个

    总结规律:最大数为3的n次方的数有2的n次方个

    同理对于任意的k而言,数的组成中最大数为k的n次方的数也有2的n次方个

    最大数为k的n次方的数在第2的n次方加一到2的n加一次方之间

    然后我们就可以根据数的位置求出每一个数是k的哪几次幂组成,累加就是最后答案

    Code

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<string> 
    using namespace std;
    int read(){
    	int a = 0,f = 0;char p = getchar();
    	while(!isdigit(p)){f|=p=='-';p = getchar();}
    	while(isdigit(p)){a = (a<<3) + (a<<1) + (p^48);p = getchar();}
    	return f?-a:a;
    }
    int n,k;
    long long f[100],m[100];
    void _first(){
    	f[0] = 1,m[0] = 1;
    	for(int i = 1;i <= 10;i++)
    		f[i] = f[i-1]*2; 
    	//f[i]用来计算这个数由k的哪几次幂组成
    	for(int i = 1;i <= 10;i ++ )
    		m[i] = m[i-1]*k; 
    }
    int main(){
    	
    	k = read();
    	n = read();
    	_first();
    	long long ans = 0;
    	//for(int i = 1;i <= 10;i++)cout<<f[i]<<" ";
    	for(int i = 10;i >= 0;i--){
    		if(n/f[i] >= 1){
    			//cout << i <<endl; 
    			n %= f[i];
    			ans += m[i];
    		}
    	}
    	cout << ans;
    }
    

    好的好的好的没了没了别看了(滑稽

  • 相关阅读:
    MySQL0902作业(待巩固)
    Mysql之懵逼的一天
    sql查询语句详解
    MySQl语句总结
    0831练习作业(待纠正)
    0824MySQL
    Python数据分析——正则表达式
    Python数据分析——Beautiful Soup
    Python数据分析——requests使用
    Excle常用函数——Rank(统计排名)
  • 原文地址:https://www.cnblogs.com/huixinxinw/p/12184479.html
Copyright © 2020-2023  润新知