c++ 递归递推解决,十分感谢!

可怕的流感

Ø 问题描述:已知一只家禽得了流感,流感的传播时间为 24 小时,在这 24 小时内

最多能将流感传给其它 M 只家禽,农场主需要购买紧急药品,假设发现时已经过

了 N 天,那么农场主需要至少买多少包药呢?(一包药为一只家禽用量)

Ø 输入:一行,两个整数,第一个表示流感传染家禽的数量 M,第二个表示发现时已

过的天数。

Ø 输出:一行,一个整数,表示需要药的包数。

Ø 样例输入:

10 2

Ø 样例输出:

121

#include<iostream>
using namespace std;
int total(int x);              //定义函数
int m;                         //m为感染数
int main() {
	int  x;                     //x为发现天数
	cin >> m >> x;
	int to = total(x);           //to为结果
	cout << to;
	return 0;
}
int total(int x) {
	if (x > 0)
	{
		return (m + 1) * total(x - 1);
	}
	else return 1;
}

 

int buyleast(int cur,int M, int N)
{
    --N;
    if(0>N)
    {
        return cur;
    }
    return buyleast(cur*M+cur,N);
}
    int M=10;
    int N=2;
    printf("%d,%d,%d\n",M,N,buyleast(1,M,N));