C++程序设计实验报告(二十七)---第二周任务一(自定义函数用递归思想,即不断调用,反向输出二进制)

来源:互联网 发布:sql2014还原数据库 编辑:程序博客网 时间:2024/06/02 07:28
第二周报告1:编写递归函数
实验目的:学会递归函数,用于将十进制转换为二进制
实验内容:自定义函数用递归思想,即不断调用,反向输出二进制。

* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: array.cpp
* 作 者: 刘镇
* 完成日期: 2012 年 2 月 27 日
* 版 本 号: 1.024

* 对任务及求解方法的描述部分
* 输入描述:输入任意一个十进制数

* 问题描述:对十进制数进行调用自定义函数,只需解决自定义问题即可,而自定义函数应用递归。
* 程序输出:二进制数
* 程序头部的注释结束

 

#include<iostream>using namespace std;void d2b(int n){if(n == 0){cout << 0;}else{d2b(n / 2);cout << n % 2 ;}return;}int main(){int a;cin >> a;d2b(a);return 0;}


 

运行结果:

(1-2)

用字符数组将十进制转换为二进制:

* 算法说明:

#include<iostream>using namespace std;int main(){int x, a[50], k = 0, r;cout << "请输入一个十进制数:" << endl;cin >> x;do{r = x % 2;a[++k] = r;x = x / 2;}while(x != 0);for(; k > 0; --k){cout << a[k];}cout << endl;return 0;}

运行结果:

经验积累:

1、递归巧妙地解决了除2取余中结果要倒序输出的问题。

2、比较两种,递归更适合解决这个问题。

上机感言:

假期确实忘了不少,但通过博客搬家也确实帮了我回顾一些内容。


 

原创粉丝点击