假设当人数是x时,传递完成需要f次,那么添加一个人时,只需要把新的人与任意一个人连接,那么这个人带有了新人的信息,然后再进行f次,旧的人都带有所有人的信息,新人再与任意一个人连接即可,f[n]=f[n-1]+2。
#include<iostream>
using namespace std;
const int maxn=10000+5;
int f[maxn]={0,0,1,3,4};
int main()
{
for(int i=5;i<=10000;i++) f[i]=f[i-1]+2;
int n;
while(scanf("%d",&n)&&n)
{
printf("%d\n",f[n]*5);
}
return 0;
}