第1关:递归求阶乘数列
任务描述
题目描述:用递归求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。

输入

一个整数n(1<=n<=20)

输出

输出表达式的值,占一行。

测试说明
样例输入:

5

样例输出:

153

提示:

因阶乘结果变化很快,所以输入数据不可太大。

解题说明:
虽然说把功能封装到函数是一般的做法,但是就这个题来说,这不是好的做法。
这个题使用迭代计算的方法,计算速度更快。
解题程序(2种,推荐第1种):

/* 第1关:递归求阶乘数列 */#include<stdio.h>
int main(void)
{int n, i;scanf("%d",&n);long long t = 1, ans = 0;for(i = 1; i <= n; i++) {t *= i;ans += t;}printf("%lld", ans);return 0;
}
/* 第1关:递归求阶乘数列 */#include<stdio.h>
long long solve(long long n){/*********Begin*********/long long p = 1, i;for(i = 1; i <= n; i++)p *= i;return p;/*********End**********/
}
int main(void)
{long long n;scanf("%lld",&n);long long ans=0;for(long long i=1;i<=n;i++)ans+=solve(i);printf("%lld", ans);return 0;
}

第2关:递归实现输出一个整数的逆序
任务描述
题目描述:编写一个递归函数,将一个整数n逆序输出,比如,n = 12345,输出54321。

输入

一个整数n。
输出

该整数的逆序。

测试说明
样例输入:
12345
样例输出:

54321

解题程序:

/* 第2关:递归实现输出一个整数的逆序 */#include<stdio.h>
void solve(int n){printf("%d", n%10);/*********Begin*********/n /= 10;/*********End**********/if(n>0) solve(n);
}
int main(void)
{int n;scanf("%d",&n);solve(n);return 0;
}

第3关:将整数递归转换成字符串
任务描述
题目描述:用递归法将一个整数n转换成字符串。例如,输入n为483,输出字符串 4 8 3,每个数字后面接一个空格用于隔开字符。

输入
一个整数n
输出
相应的用空格隔开的数字字符。

特别注意:输出字符之间有空格

测试说明
样例输入:

483
样例输出:

4 8 3

解题程序:

/* 第3关:将整数递归转换成字符串 */#include<stdio.h>
void solve(int n){int temp=n%10;/*********Begin*********/n /= 10;if(n) solve(n);/*********End**********/if(n)printf(" %d", temp);elseprintf("%d", temp);
}
int main(void)
{int n;scanf("%d",&n);solve(n);return 0;
}

第4关:递归实现Ackman函数
任务描述
题目描述:编写一函数实现下列Ackman函数,其中m,n为正整数

输入
一个两个整数
输出
输出表达式的值,占一行。
测试说明
样例输入:
1 1
样例输出:
3

解题程序:

/* 第4关:递归实现Ackman函数 */#include<stdio.h>
int Acm(int m,int n){if(m==0&&n>0)/*********Begin*********/return n + 1;/*********End**********/else if(n==0&&m>0)/*********Begin*********/return Acm(m - 1, 1);/*********End**********/else/*********Begin*********/return Acm(m - 1, Acm(m, n - 1));/*********End**********/
}
int main(void)
{int m,n;scanf("%d%d",&m,&n);printf("%d", Acm(m,n));return 0;
}

EDUCoder编程练习题解(递归与嵌套函数)相关推荐

  1. EDUCoder编程练习题解(结构体)

    编辑与调试    顺序结构    选择结构一    选择结构二    循环一     循环二    函数 递归与嵌套函数     一维数组和二维数组     字符数组      指针一    指针二  ...

  2. EDUCoder编程练习题解(一维数组和二维数组)

    一维数组和二维数组 第1关:排序问题 任务描述 本关任务:将十个数进行从大到小的顺序进行排列. 输入 输入十个整数. 输出 以从大到小的顺序输出这个十个数. 测试说明 样例输入: 1 2 3 4 5 ...

  3. EDUCoder编程练习题解(字符数组)

    第1关:字符逆序 任务描述 题目描述:输入一个字符串,输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 测试说明 样例输入: 123456abcdef 样例输出: fedcba654321 ...

  4. EDUCoder编程练习题解(循环)

    循环二 第1关:C循环-求平均成绩 任务描述 本关任务:编写一个程序,输入学生人数和每个人的成绩,计算平均成绩. ######注意:当输入的学生人数小于等于0时,输出平均成绩为0分! 测试说明 以下是 ...

  5. python之路--嵌套函数、匿名函数、高阶函数。函数的递归

    嵌套函数 函数里不仅可以写代码,还可以嵌套函数 name = "小猿圈"def change():name = "小猿圈,自学编程"def change2(): ...

  6. 递归:若函数包含了对其自身的调用,该函数为递归的。《Python核心编程》P305...

    递归:若函数包含了对其自身的调用,该函数为递归的. >>> #递归 <Python核心编程>P305 >>> def factorial(n): if ...

  7. python嵌套函数具体案例_python编程嵌套函数实例代码

    python,函数嵌套,到底是个什么东东? 很少有人用,但是,有时确实会用: def multiplier(factor): def multiplyByFactor(number): return ...

  8. Python--三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数...

    三元表达式 列表推导式 生成器表达式 递归与二分法 匿名函数 内置函数 一.三元表达式 name=input('姓名>>: ') res='True' if name == 'lee' e ...

  9. 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数(day4)

    一.三元表达式.列表推导式.生成器表达式 1.三元表达式name=input('姓名>>: ')res='SB' if name == 'alex' else 'NB'print(res) ...

最新文章

  1. 为什么我的Button文本被迫在Lollipop上全部大写?
  2. python电脑下载网址-Python
  3. PHP获取当前页面的网址
  4. mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js
  5. (190)FPGA变量初始化方法initial
  6. python写背单词软件_python实现屏保程序(适用于背单词)
  7. SQL每日学习——insert into语句
  8. Epub,Mobi,Azw3电子书格式的区别,有什么好用的安卓epub阅读器
  9. thinkphp 短信api接口调用
  10. 锁定Excel部分单元格不能编辑,可以这样操作
  11. Express高效查询纯真IP库插件lib-qqwry
  12. android studio anr,Android ANR 分析
  13. 006 管理Ceph的RBD块设备
  14. Google Colab中把pyth3.7版本更换成python3.6(tensorflow1.13)
  15. distill_bert和tiny_bert
  16. ABB机器人画圆编程_ABB机器人使用rapid编程中问号的用法及画整圆指令
  17. CPU和CPU寄存器和CPU缓存和CPU内存管理器、RAM、hard disk。以及堆栈、内存映射。
  18. Easyui后台管理界面设计
  19. Matlab 将计算结果制作成 gif 动画
  20. 小程序日历控件分享 按月传值显示

热门文章

  1. 2019-06-15
  2. 单一IP地址静态NAT实验环境
  3. [整理] TPM 2.0 设备串口通讯协议中文文档
  4. Vue——知识体系总结
  5. dreamweaver cs6配置phonegap环境
  6. C# 实现程序最小化到托盘
  7. Vue组件相关的知识
  8. java成员访问修饰符,如何使用java反射查找成员的访问修饰符
  9. linux 空信息,为什么recv()函数收到空消息?
  10. MySql的语法规范