炫耀手机

炫耀手机

题目描述

小F终于买到了心仪的手机,当然是华为的新款啦。小F有5个好朋友,她把新买的手机拿给朋友们看。手机就在她
们手中传递了。小F先把手机给某个朋友,每个朋友欣赏完手机后就把手机传给另外一个人欣赏。当然已经看过手
机的人还可以继续接过来欣赏。结果经过n次传递后,手机又回到小F手中(中间过程手机也可能回到过小F手
中)。你能知道传递的过程中有多少种传递方式吗?

输入

多组测试数据,每组输入一个整数n(1<=n<=20)

输出

输出传递的种数

样例输入

2

样例输出

5

题解:

这道题实在是easy, 除非你承认“你**就是一个弟弟!”搞暴力枚举。公式题,没啥可说的。

源代码:(公式题)

#include<bits/stdc++.h>
using namespace std;
int main() {
	long long n,a[11000],i;
	while(cin>>n) {
		a[1]=0;
		a[2]=5;
		for(i=3; i<=n; i++) a[i]=5*a[i-2]+4*a[i-1];
		cout<<a[n]<<endl;
	}
	return 0;
}

源代码:(暴力枚举,我承认我就是个弟弟,因为我有一个亲姐姐)

#include<bits/stdc++.h>
using namespace std;
int main() {
	long long n;
	while(cin>>n) {
		if(n==1) cout<<0<<endl;
		if(n==2) cout<<5<<endl;
		if(n==3) cout<<20<<endl;
		if(n==4) cout<<105<<endl;
		if(n==5) cout<<520<<endl;
		if(n==6) cout<<2605<<endl;
		if(n==7) cout<<13020<<endl;
		if(n==8) cout<<65105<<endl;
		if(n==9) cout<<325520<<endl;
		if(n==10) cout<<1627605<<endl;
		if(n==11) cout<<8138020<<endl;
		if(n==12) cout<<40690105<<endl;
		if(n==13) cout<<203450520<<endl;
		if(n==14) cout<<1017252605<<endl;
		if(n==15) cout<<5086263020<<endl;
		if(n==16) cout<<25431315105<<endl;
		if(n==17) cout<<127156575520<<endl;
		if(n==18) cout<<635782877605<<endl;
		if(n==19) cout<<3178914388020<<endl;
		if(n==20) cout<<15894571940105<<endl;
	}
	return 0;
}

AC

发布了66 篇原创文章 · 获赞 68 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/m0_45682806/article/details/104591572