P1108 数列(题解不懂) 有点数学意思

来源:互联网 发布:淘宝如何自己做模板 编辑:程序博客网 时间:2024/05/01 08:25

   【提交】【记录】【状态】【讨论】【题解】【训练题】数列  


时间限制:1秒  内存限制:64M       【问题描述】  

  给定一个正整数 k,把所有 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。


当时看到这个思路很服气的,于是自己理解了就写了交了...然而现在我看不懂了...改天理解了再编辑一下》。。


#include<cstdio>//借鉴了网上牛人的思路,虽然是自己敲的.... #include<cstring>using namespace std;int main(){int a[100],k,N,cnt=0;long long count=0;scanf("%d%d",&k,&N);for(int i=1;N!=0;i++){a[i]=N%2;N/=2;cnt++;}for(int i=cnt;i>=1;i--) count=count*k+a[i]*k;printf("%lld",count/k);return 0;}

不得不说这个看起来和2没有毛线关系...所谓的数学之美????

原创粉丝点击