- 8
- 0
- 约8.68千字
- 约 12页
- 2017-07-02 发布于湖北
- 举报
C常用算法归纳概要1
C++常用算法归纳
一、基本算法
1、两数交换借助第三数
例:任意读入2个整数,然后按从小到大的顺序输出这两个数。
【法1】
#include iostream
using namespace std;
void main()
{int a,b;
cinab;
ab?couta,b:coutb,a;
}
【法2:让a中放较小数、b中放较大数】
#include iostream
using namespace std;
void main()
{int a,b;
cinab;
int t; //中间变量
ab?(t=a,a=b,b=t):(a=a,b=b);
couta,bendl;
}
【算法解释:“t=a,a=b,b=t”,即可借助t,将a和b的值交换。】
2、累加
例:求1+2+3+……+100的和。
#include iostream
using namespace std;
void main()
{int s,i;
s=0;
i=1;
while(i=100)
{s=s+i;
i=i+1;
}
cout1+2+...+100=s;
}
【分析:出循环时,i为101,其最后一个合法取值(终值)为100;本题中s被称为累加器,它以“s=s+……”的形式出现在循环中,该式被称为累加式,累加器在进入循环前必须获得合法初值,通常为0。i是一个特殊的累加器,每次递增1,又称为计数器。i身兼二职:控制循环的次数,同时兼做累加式的通项。】
3、累乘
例. 求10!。
【分析:10!=1×2×3……×10,累乘器在进入循环前必须获得合适初值;通常为1。累乘式格式“C=C*……”必须出现在循环中。注意,不要让累乘器溢出。】
#include iostream
using namespace std;
void main()
{long C;
int i;
C=1;
i=1;
while(i=10)
{C=C*i;
i++;
}
coutCendl;
}
【思考:能否将本程序稍做修改,分别输出1!~10!】
二、非数值计算常用经典算法
1、穷举法
对所有的可能性进行判断,凡是符合条件的做相应处理(输出、保存等)。
例:输出所有的“水仙花”数,即这样的三位正整数:其每一数位上的数字的立方之和等于该数本身。比如,153=13+53+33。
【法一:一重循环,难点:求出每位数字】
#include iostream
using namespace std;
void main()
{int sxh;
int b,s,g;
for(sxh=100;sxh=999;sxh++)
{b=sxh/100;
s=sxh/10%10;
g=sxh%10;
if(b*b*b+s*s*s+g*g*g==sxh)
coutsxhendl;
}
}
【结论:任意一个正整数的个位数字,都可以用“该数%10”求得!】
【法二:三重循环】
#include iostream
using namespace std;
void main()
{int b,s,g;
for(b=1;b=9;b++) //时针
for(s=0;s=9;s++) //分针
for(g=0;g=9;g++) //秒针
if(b*b*b+s*s*s+g*g*g==b*100+s*10+g)
coutb*100+s*10+gendl;
}
【发现:核心语句if被执行了900次】
2、正整数的各数位上数字的获取
例1:任意读入一个正整数,依次输出其低位到高位上的每一位数字。
例2:任意读入一个整数,依次输出其低位到高位上的每一位数字及其符号位,但若是0不输出符号位。
3、迭代法
例1. 猴子吃桃问题。某猴子某天摘了若干只桃子,吃了一半,不过瘾,又多吃一只;第二天又吃了一半,不过瘾,再多吃一只……到第十天,发现只剩1只桃子了。问第一天共摘了多少只桃子。
#include iostream
using namespace std;
void main()
{int peach,day;
peach=1;
for(day=9;day=1;day--)
peach=(peach+1)*2;
cout第一天的桃子数:peach;
}
【归纳:类似于本题peach变量的特点:其值不停地被新值替代(自身的原值变化而来),直到满足所求终止。】
【问题:能否将上述程序稍作修改,输出每一天的桃子数。】
#include iostream
using namespace std;
void main()
{int peach,day;
peach=1;
for(day=9;day=1;day--)
{peach=(peach+1)*2;
您可能关注的文档
- Business_meeting概要1.pptx
- bugfree的详细安装与使用概要1.pptx
- BusinessObjects XI 管理(公司内部资料)概要1.ppt
- Business_appointment_商务会谈概要1.ppt
- But what`s a dictionary for? 课概要1.pptx
- Butterknife用法概要1.doc
- But you didn’t概要1.pptx
- Business Etiquette(商务礼仪2014)概要1.pptx
- BWDSP汇编入门概要1.pptx
- buzz marketing概要1.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 准噶尔盆地南缘山前带石油地质综合评价.pdf VIP
- 2012届松江区高三英语二模试卷.doc VIP
- 2012奉贤区高三二模英语含答案.doc VIP
- 云南大学博士、硕士研究生学位论文写作规范-2025.docx VIP
- 2008学年奉贤区调研测试高三英语试卷及答案.doc VIP
- 最新人教版六年级上册数学1-8单元单元测试卷及期中期末卷(含答案).pdf VIP
- [黄浦区2009学年度第一学期期终基础学业测评高三英语附答案.doc VIP
- 2025至2030中国C反应蛋白(CRP)试验行业产业运行态势及投资规划深度研究报告.docx
- 2009学年奉贤区调研测试高三英语试卷(附答案).doc VIP
- 噬神者:爆裂 怪物素材获取方法.pdf VIP
原创力文档

文档评论(0)