![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
小月贺金山
这个作者很懒,什么都没留下…
展开
-
完数问题
一个数如果恰好等于它的因子之和,这个数就称为“完数”。如6=1+2+3。编程求2000以内的所有“完数”,并按以下格式输出:6=1+2+3int main(){ for(int num=1;num<=2000;num++) { int s=0; for(int i=1;i<num;i++){ if(num%i==0) { s+=i; } }原创 2013-12-08 10:05:42 · 605 阅读 · 0 评论 -
素数问题
#include #include using namespace std;int main(){ int i,n; cin>>n; for(i=2;i<=sqrt(n)&&n%i!=0;i++); if(i<sqrt(n)) cout<<n<<"不是素数"; else cout<<n<<"是素数"<<endl;}原创 2013-12-08 09:36:46 · 414 阅读 · 0 评论 -
排序算法
排序算法是经常使用的算法,在STL中也有一个比较牛X的快速排序(sort),但是我们不能只会调用sort呀!?作为一个好学的同学,我们要知道各种排序的内部是怎么实现滴~~~提到排序算法我们要知道两个经常提到的概念:(1)排序算法的稳定性:所谓“稳定性”是指,在待排序数组出现的两个相同的元素,排序之后相对维持保持不变。比如:待排序数组为arr[] = {1,4,3,1},排序之后元素变为ar转载 2013-12-15 20:22:32 · 417 阅读 · 0 评论 -
二分查找
二分查找分析:所谓二分查找就是每次与被查找数组的中间元素进行比较,若是找到目标,则找到,否则与剩余一半的元素进行继续查找。为保证每次查找的元素是中间大小的元素,二分查找前数组必须按从小到大或从大到小排好序。由于每次查找范围减少一半,因此,n个元素的数组只需查找log2n次。若n=1024,则最多只需查找10次,因为log2n=log21024=10。int main(){ in原创 2013-12-09 19:15:53 · 448 阅读 · 0 评论 -
魔方阵
输出n阶“魔方阵”。/*n为1~15之间的奇数*/ (注意边界部分)特点:每一行、列、对角线之和相等。确定每个数位置的原则是:(1)第一个数(1)为第0行中间位置;(2)若当前为右上角位置,则下一数放在其下方;(3)否则放在减1行加1列位置;(4)若所在位置已经有数,则退回到原数下方位置。int main(){ while(true) { int n原创 2013-12-09 19:06:25 · 558 阅读 · 0 评论 -
打印规律图形
1.输入n则打印n行由“*”构成的正三角形,如输入5则打印如下图形(灰色*部分代表空格,只显示红色*部分)。***** 1****** 2******* 3******** 4********* 5int main(){ for(int i=1;i<=5;i++) { for(int k=1;k<=(5-i);k++) cout原创 2013-12-08 10:00:11 · 924 阅读 · 0 评论