基于c++的完全数之非TDD版本(2013.8.20)
2013-08-20 23:22
501 查看
#include <cassert> #include <cmath> bool is_perfect(int num) { int sum = 0; if (num > 1) { sum = 1; for (int i = 2; i <= (int)sqrt((double)num); i++) { if (0 == (num % i)) { sum += i; sum += num / i; } } } return sum == num; } void test_is_perfect() { assert(is_perfect(6)); assert(is_perfect(28)); assert(is_perfect(496)); assert(is_perfect(8128)); } const int perfects[] = {6, 28, 496, 8128}; const int size = sizeof(perfects) / sizeof(perfects[0]); bool in_perfects(int num) { bool found = false; int i = 0; while(!found && i < size) { found = (num == perfects[i++]); } return found; } void test_is_not_perfect() { for (int i = 1; i < 100000; i++) { if (in_perfects(i)) { assert(is_perfect(i)); } else { assert(!is_perfect(i)); } } } int main() { test_is_perfect(); test_is_not_perfect(); return 0; }
相关文章推荐
- 基于c++的完全数之TDD版本
- 基于c++的完全数之非TDD版本
- 基于python的完全数之TDD版本(修改)
- 基于python的完全数之TDD版本
- 基于python的完全数之非TDD版本
- 【C++】MFC中的CString和std::string,以及两者之间的相互转换(基于VS201X版本)
- c++版本的高斯混合模型的源代码完全注释
- C++资源库不完全版本
- c++基于c11的新特性以及与c99版本C语言的区别
- c++版本的高斯混合模型的源代码完全注释
- 数据绑定应该算是Spring MVC的特点之一吧~简单易用且功能强大,极大地简化了我们编程人员对于用户输入数据的接收及转换。 早先版本的Spring中的数据绑定完全都是基于PropertyEditor
- 基于VS 2010下图形库版本的 C++程序之推箱子
- C++资源库不完全版本
- 我的OpenCV学习笔记(25):c++版本的高斯混合模型的源代码完全注释
- 基于ZooKeeper的分布式锁实现(C++版本)
- C++ 程序 附加 进程调试 方法 本文基于VS2010为例, 其他版本的编译器也可以
- 基于贝叶斯学习的自适应中文词组的联想输入原理及C++实现
- 基于MysqlConnector/C++的数据库连接池的实现
- 完全基于Linux的Oracle数据库11g今天正式上市
- C++中基于成员函数是否是const重载成员函数