1344. 数列(根据规律生成数列)

/* 1344. 数列(根据规律生成数列)
  规律: 以k的方幂为分割点,分割点之间的数字等于
          = k^i(i次幂) + a[x] (x为1 -- k次幂分割点的前一位squreIndex-1) 
*/
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

int main(){
    
    int a[1001];
    int k, N;
    
    
    while(cin >> k >> N){
       int num = 0;
       int i=0;
       while(num < N){
           long long temp = (long long)pow((double)k, i);
           num++;
           a[num] = temp;
           if(num == N)
           {
              cout << temp << endl;
              break;    
           }
           int squreIndex = num;
           for(int k=1; k<=squreIndex-1; k++){
              temp = a[squreIndex] + a[k];
              num++;
              a[num] = temp;
              if(num == N){
                 cout << temp << endl;
                 break;       
              }     
           } 
           i++;
       }       
    }
    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值