递归2: 十进制转换成二进制的递归与迭代实现
2013-10-18 11:11
204 查看
#include <iostream> using namespace std; // 前置条件: n >= 0 // 后置条件: 输出n的二进制等值数 // (递归版本--优于迭代版本) // worstTime(n) 是 O(log n). void writebinary1(int n) { if (n == 0 || n == 1) cout << n; else{ writebinary1(n/2); cout << n%2; } } // (迭代版本) // 描述:用一个while循环生成位的值,并用一个数组保存这些值, // 然后是一个反序步骤的for循环输出那些值。 // worstTime(n) 是 O(n). void writebinary2(int n) { int i = 0, bin[32]; if (n == 0 || n == 1){ bin[0] = n; i++; } while (n != 1 && n != 0){ bin[i] = n % 2; i++; n = n / 2; } bin[i] = n; for (int j = i; j >= 0; j--) cout << bin[j]; } int main() { cout << "Please enter a integer:\n"; int n; cin >> n; cout << "(decimal) " << n << " = (binary) "; writebinary1(n); cout << endl << endl; cout << "Now, please enter a integer:\n"; cin >> n; cout << "(decimal) " << n << " = (binary) "; writebinary2(n); cout << endl; return 0; }
相关文章推荐
- 用递归实现十进制转换成二进制
- 位运算实现 十进制(正负)转换成二进制
- 进制转换器(用顺序栈实现)(可实现简单的二进制或八进制或十进制的转换)
- C++实现二进制、八进制、十进制、十六进制的相互转换
- js实现二进制与十进制的相互转换
- 一条SQL语句实现二进制到十进制的转换
- 用C#代码实现二进制与十进制的互相转换
- 使用堆栈实现十进制转换成二进制
- 用栈实现十进制到二进制的转换
- 12、JAVA 递归实现十进制到N进制的转换--未考虑负数
- (递归)十进制转换成二进制
- 用堆栈实现十进制转换为二进制
- 利用栈实现二进制转换为十进制
- 使用bitset实现二进制和十进制的相互转换
- C语言实现二进制与十进制转换
- 用栈实现十进制转换为二进制
- 实现二进制与十进制之间的相互转换
- 递归代码将十进制转换成二进制输出
- 十进制转换为二进制 (三种方法实现)
- 用C#代码实现二进制与十进制的互相转换