题目数量-递推

【问题描述】

  n名同学争做计算题,规定做完一道才能做第二道,比赛后统计发现:第一位同学做了总数的一半多1道,第二位同学做了余下的一半多2道,第三位同学做了再余下的一半多3道,以此类推,第n-1位同学做了余下的一半多n-1道,最后一位同学做了n道。输入学生的数量n,求共有多少道题目?

【输入样例】

  4

【输出样例】

  66

#include<iostream>
using namespace std;
int sum;
int question(int n){
    sum=n;
    if(n==1) return sum;
    for(int i=1; i<n; i++){
        sum=(sum+n-i)*2; // 递推表达式。    
    }
    return sum; 
}

int main(){
    int n;
    cin>>n; 
    cout<<question(n);
    return 0;
}

 

posted @ 2022-07-18 16:35  Hi,小董先生  阅读(677)  评论(0)    收藏  举报