数列题解

来源:互联网 发布:无人机pos数据怎么确定 编辑:程序博客网 时间:2024/05/21 04:00

这道题最难的就是找出它的规律;

我们找出的规律是:

1:将N转化为2进制S;

2:再将S转化为k进制数;

          3:最后将它们加起来;

放到程序中为:

  1:用一个while循环,条件为N > 0;

  2:在循环中取末尾乘上k,并将它加进ans;

  3:将N乘除2;(等于消除末尾)

#include<iostream>

using namespace std;
int main()
{
    int k,N,sum,ans;
    cin >> k >> N;
    sum = 1;
    ans = 0;
    while (N > 0)
    {
          ans = ans + N % 2 * sum;
          sum = sum * k;
          N = N / 2;
    }
    cout << ans;
    cin >> k;
    return 0;
}
0 0