题目描述
某人给不同地址不同姓名的n位朋友写信,信笺、信封都分别写好了。假设信封用大写字母表示,信笺用小写字母表示,正确的对应关系如下:
信封:A B C D E F ...
信笺:a b c d e f ...
请问:所有信笺、信封全都装错的情况有多少种?
输入要求
输入一个正整数n,表示有n封信。
输出要求
依次输出n取不同值时信封、信笺全都装错的情况数。
每行的输出包含两部分内容,第1部分是信的数量,第二部分是全部装错的情况数。两个数据间以\t间隔。
如
5 44
表示5封信的时候,全部装错的情况有44种。
输入样例
6
输出样例
1 0 2 1 3 2 4 9 5 44 6 265
代码:
#include<stdio.h>
int D(int n)
{
if(n==1)
return 0;
if(n==2)
return 1;
else
return (n-1)*(D(n-1)+D(n-2));
}
int main()
{
int n,t;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
t=D(i);
printf("%d\t%d\n",i,t);
}
return 0;
}
// D(n)=(n-1)*(D(n-1)+D(n-2)) 其中 D(1)=0 D(2)=1 公 式