算法
文章平均质量分 59
小落0117
学习这种事,当然要每天做啦,因为学习使我快乐,我人生的目标就是快乐~
展开
-
求完数
虽然我不知道为什么要求这个完数,但是老师让求就求吧,因为我们是听话的好孩子嘛完数是什么,就是这个数的所有因子的和和这个数相等,这个数就叫完数/**求1000以内完数*//**完数是指一个数是其所有因子之和*/#includeusing namespace std;int main(){ int sum=0; for(int i=1; i<1000; i++)原创 2017-03-25 16:56:03 · 461 阅读 · 0 评论 -
数组中最大最小值的蛮力法和二分法求解
数组中最大最小值的蛮力法和二分法求解原创 2017-06-25 09:39:15 · 3395 阅读 · 0 评论 -
求两个数的最大公因数(约数)
/**辗转相除求最大公因数设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用b除以r1,得b÷r1=q......r2 (0≤r2若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除以r2,……如此下去,直到能整除为止。其最后一个余数为0的除数即为(a, b)的最大原创 2017-06-21 18:26:40 · 503 阅读 · 0 评论 -
从n里取r
方法一,三次循环。数要是大了就麻烦了#include#includeusing namespace std;int main(){ int n; cin>>n; int m; cin>>m; int sum=0; for(int i=1;i<=n;i++){ for(int j=1; j<=n;j++){原创 2017-06-24 15:18:55 · 381 阅读 · 0 评论 -
给出十进制数,从高位到地位拆数
其实就是倒着拆了装数组里再逆序输出 然后我有一个不用放数组里的办法/**正序拆*/#include#includeusing namespace std;int main(){ int n; cin>>n; int t=n; int k=0; while(t>0){//算位数 t=t/10; k++; }原创 2017-06-24 14:53:36 · 695 阅读 · 0 评论 -
给出十进制数,从低位到高位输出各位
#includeusing namespace std;int main(){ int n; cin>>n; int t=n; int k=0; while(t>0){ t=t/10; k++; } for(int i=0;i<k;i++){ cout<<n%10<<" ";原创 2017-06-24 14:12:12 · 1489 阅读 · 0 评论 -
整数划分
#includeusing namespace std;int divide(int n,int m){ if(n<1||m<1){ cout<<" data error"<<endl; } else if(n==1||m==1){ return 1; } else if(n==m){ return (1+divid原创 2017-06-24 13:50:02 · 251 阅读 · 0 评论 -
输出各种形式的1到10
真的不太明白这种东西存在的意义,但是老师就是那这种东西来考你你说咋么办吧。。。/**输入n,输出下面这种形式的矩阵15 28 6 310 9 7 4按列输出*/#includeusing namespace std;int main(){ int n; cin>>n; int a[100][100]; a[0][0]=1; int i,j,原创 2017-03-25 15:57:41 · 976 阅读 · 0 评论 -
穿越沙漠问题
/**一靓吉普车穿越1000米的沙漠,总装油量500加仑,耗油1加仑每千米,用这辆车在沙漠中建立油库,使吉普车用最少的油穿越沙漠,应该在哪里建油库,存储量是多少*/#includeusing namespace std;int main(){ int dis=500; int k=1; int oil=500; int x,y,m; while(di原创 2017-06-21 20:10:34 · 841 阅读 · 0 评论 -
兔子繁殖问题
/**一对兔子从出生三个月开始,每月生一对小兔子,小兔子到第三个月又开始生小兔子,兔子只生不死,问1月份抱来的兔子,1年中每个月各有多少兔子*//**月份 1 2 3 4 5 6 7兔子 a a a b1 a b2 c1 a b3 c2 d1 e1 a b4 c3 d原创 2017-06-21 18:06:17 · 326 阅读 · 0 评论 -
想一个1到100之间的数,分别除以357得到3个余数,把这三个余数输入计算机,计算机会猜出你想的数
/**想一个1到100之间的数,分别除以357得到3个余数,把这三个余数输入计算机,计算机会猜出你想的数*/#includeusing namespace std;int main(){ int a,b,c; cin>>a>>b>>c; int d=70*a+21*b+15*c; while(d>105){ d=d-105; } cout<<d;原创 2017-06-19 11:11:58 · 2775 阅读 · 1 评论 -
判断一个数能否被3,5,7整除
/**输入一个数,判断其能否被3,5,7中的一个或者两个或者三个或者都不能整除,指出是哪个*/#includeusing namespace std;int main(){ int n; cin>>n; int k=(n%3==0)+(n%5==0)*2+(n%7==0)*4;//这一句的n%3如果等于0,则(n%3==0)表达式的值为1 switch(k){原创 2017-06-19 09:23:06 · 5653 阅读 · 0 评论 -
求三个数的最小公倍数
/**任意给出3个数,求他们的最小公倍数**/int main(){ int a,b,c; cin>>a>>b>>c; }原创 2017-06-18 20:55:42 · 924 阅读 · 0 评论 -
冒泡排序以及改进版冒泡排序
/**普通冒泡排序*/#includeusing namespace std;int main(){ int a[5]; for(int i=0;i<5;i++){ cin>>a[i]; } int t; for(int j=0;j<5;j++){ for(int k=0;k<5-j-1;k++){原创 2017-06-18 19:45:59 · 412 阅读 · 0 评论 -
求数圈中乘积最大和最小的两对数
/** 1 *//** 17 16 *//** 8 10 *//** 12 16 *//** 5 1 *//** 9 9 *//** 3 8 *//** 8 12 *//*原创 2017-06-18 18:40:03 · 806 阅读 · 0 评论 -
开灯问题
/**1号同学关闭所有灯,2号同学打开所有2的倍数的灯,3号将3的倍数的灯做相反处理,4号同理3号,到n号,哪些灯是开着的*/#includeusing namespace std;int main(){ int a[20]; int n;//同学个数 cin>>n; for(int i=1;i<=n;i++){ a[i]=0;//1号关灯原创 2017-06-18 16:56:58 · 241 阅读 · 0 评论 -
求鞍点
/**鞍点是在行上最小,列上最大的点*/#includeusing namespace std;int main(){ int minj=0,maxi=0,maxv=0,t; int a[5][5]; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ cin>>a[i][j];原创 2017-06-18 16:15:10 · 884 阅读 · 0 评论 -
各种算法的定义
我就是复习,有什么不对的请指正,我明天就考试了,指正晚了我可能就挂了,机不可失失不再来啊,哈哈哈贪婪法: 也叫贪心法,听名字就知道是选择最优的,人都是趋利避害的嘛,算法也是,通过局部最优解,按照一定顺序,比如从前往后或者从后往前逐步得到全局最优解,只考虑当前局部信息情况就做出决策,有点做事很鲁莽的感觉递推法: 听名字就知道是一步一步推出来结果的,它依靠的是问题本身信息之间的递推原创 2017-06-25 14:16:12 · 1370 阅读 · 0 评论