题目标题:
e 数列
题目描述:
┌ e(1)=e(2)=1, └ e(n)=(n-1)*e(n-1)+(n-2)*e(n-2) (n>2) 称为e数列,每一个e(n) (n=1,2,…)称为e数。求[1,m]之内: (1)最大的e数。 (2)e数的数目
输入描述:
输入一个整数,表示m的值,m<300000;
输出描述:
输出两个整数,第一个表示最大的e数,第二个表示e数的数目;
样式输入:
30000
样式输出:
16687
8
#include<stdio.h> #include<math.h> #include<string.h> int e(int n) { if(n==1||n==2) return 1; else return (n-1)*e(n-1)+(n-2)*e(n-2); } int main() { int i,m,t; scanf("%d",&m); for(i=1;;i++) { t=e(i); if(t>m) break; } printf("%d\n%d",e(i-1),i-1); return 0; }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题