题目描述
有一种病毒传染性非常强。一开始只有1个人感染了这个病毒,这个人成为第一代感染者。第一代感染者会传染给3个健康人,使得这3人变成第二代感染者。第二代的每个感染者又分别会传染3个健康的人,所以第三代感染者共有9人,...以此类推。问到了第几代感染者之后,总共的感染人数会超过a人?
输入格式
一个整数a。
输出格式
一个整数。
输入/输出例子1
输入:
15
输出:
4
样例解释
第一代感染者有1人,第二代感染者有3人,第三代感染者有9人,第四代感染者有27人。
可以发现,即使到了第三代感染者,所有感染人数=1+3+9=13,没有超过15人,所以要等到第四代感染者,才会使得总的感染人数超过15,所以答案是4。
我的代码:
#include<bits/stdc++.h>
using namespace std;
int a,c=1,p=1;
int main()
{
cin>>a;
for(int i=1;i<=a;i+=p)
{
c++;
p=p*3;
}
cout<<c;
return 0;
}
这题考的是累加和累乘,也很简单。
文章描述了一个病毒传染问题,通过数学模型计算每一代的感染者数量,直到总感染人数超过给定值a。代码展示了如何用迭代的方式求解此问题。
603

被折叠的 条评论
为什么被折叠?



