首页 > 其他 > 详细

HUD 1465 不容易系列之一

时间:2016-08-06 12:45:36      阅读:152      评论:0      收藏:0      [点我收藏+]

原题链接:点击此处

解题思路:

一道应该属于递推的题目。

就是N封信都装错信封了。。。

假设信封有7个吧:A~G

A

_ _ _ _ _ _ _ 

a

向A里装错有7-1种情况,先选一种放b

A

b _ _ _ _ _ _

开始放B的,B可以放a也可以放其他的,如果放a,则就是剩下n-2个的排列了,

如果放其他的假设放c那就是剩下n-1的排列

这样就可以总结出来规律:

f[n]= (n-1)*( f[n-1] + f[n-2])。

 

源代码:

技术分享
#include <iostream>
#include <stdio.h>
using namespace std;
long long a[21]={0,0,1,2};
int n;
int main()
{
    for(int i=3;i<=21;i++)
        a[i]=(i-1)*(a[i-1]+a[i-2]);
    while(cin>>n)
        cout<<a[n]<<endl;
    return 0;
}
View Code

 

HUD 1465 不容易系列之一

原文:http://www.cnblogs.com/gdvxfgv/p/5743620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!