问题标题: 酷町堂:2990 禽流感 思路

0
0
已解决
陈曦
陈曦
资深天翼
资深天翼

https://ke.codingtang.com/#/problem/problemSub?id=2990

 

请发思路,谢谢!

陈曦在2020-08-26 21:51:05追加了内容
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int n,x,nn=1,xx;
	cin>>x>>n;
	for(int i=1;i<=n;i++){
		nn+=x;
	} 
	cout<<nn;
	return 0;
}

我这个代码的思路错了吗?

陈曦在2020-08-28 20:13:32追加了内容
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int n,x,nn=1,xx;
	cin>>x>>n;
	for(int i=1;i<=n;i++){
		xx=nn;
		nn=xx*x+xx;
	} 
	cout<<nn;
	return 0;
}

10分,请找错。(只过了样例)


0
已采纳
李致远
李致远
高级光能
高级光能

这道题用递推做!

递推公式:f[n]=f[n-1]+f[n-1]*x;

注意边界:

f[1]=x+1;

不会递推请看我的帖子:https://wenda.codingtang.com/questions/10039/ //滑到下面去

//递推公式推导过程↑

——————

(无恶意)(请允许我笑一会)

李致远在2020-08-28 20:35:04追加了内容

等一下 我递推关系图写错了。。。

f[n]=f[n-1]*(1+x)

0
胡钰妍
胡钰妍
资深光能
资深光能

首先:int改成long long

2:for里面是a[i]=a[i-1]+a[i-1]*x;

3.cin后面加一个a[1]=1*x+1;

4.for从2开始

5.要定义一个数组

#include<iostream>

#include<cstdio>

using namespace std;

long long a[5000005];

int main()

{

long long x,n;

cin>>x>>n;

a[1]=1*x+1;

for(int i=2;i<=n;i++)

{

a[i]=a[i-1]+a[i-1]*x;

}

cout<<a[n];

return 0;

}

望采纳

0
黄子扬
黄子扬
初级天翼
初级天翼

我这个代码的思路错了吗?

--难道对了?

0
邓涵睿
邓涵睿
中级天翼
中级天翼

你是这样想的吧:一开始只有一只患传染病的禽兽,一共有n轮,每轮传染x个

循环请从零开始

递推公式:ans=ans+ans*x;

我要回答