Algorithm
哎一入江湖岁月催
宜静默,宜从容,宜谨严,宜俭约。
展开
-
有趣的算法
Friday, July 22, 2016 19:50:50 A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B? 答案:A把药放进箱子,用自己的锁把箱子锁上。B原创 2016-07-22 20:47:59 · 540 阅读 · 0 评论 -
去重全排列
#include #include int num=0;void swap(char *a, char *b) {char t = *a;*a = *b;*b = t;}bool jud(char *a, int begin, int end) {for (int i = begin; i if (a[i] == a[end])return false;原创 2016-11-08 21:22:28 · 307 阅读 · 0 评论 -
矩阵连乘
递归:#include#define N 6int m[N][N]; //最小乘法次数int RecurMatrixChain(int P[],int i,int j) { m[i][j]= 100000; if(i== j) m[i][j]=0; else { for(int k=i; k<j; k++) { int q=RecurMatrixChain(P,i,k原创 2016-11-08 21:26:04 · 453 阅读 · 0 评论 -
强大的位运算
强大的位运算C语言具有高级语言的特点,又具有低级语言的特点.因此它能实现某些高级语言不能实现的功能位运算是指进行二进制位的运算 运算符 含义 & 按位与 ¦ 按位或原创 2016-11-22 20:27:23 · 1580 阅读 · 0 评论 -
OJ 2018/3/7
明明的随机数: #include<stdio.h>int main(){ int i, j, num; int temp; scanf("%d", &num); int a[100]; for(i = 0; i < num; i++) scanf("%d", &a[i]); for(i ...原创 2018-03-07 21:44:58 · 219 阅读 · 0 评论 -
OJ 2018/3/8
//A+B#include<stdio.h>int main(){ int a,b; scanf("%d %d",&a,&b); printf("%d",a+b); return 0;}/*01序列*//*itoa();该函数的头文件是"stdlib.h"把一整数转化为字符串itoa char *ito...原创 2018-03-08 21:51:48 · 358 阅读 · 0 评论 -
OJ 2018/3/15
/*03*/#include<stdio.h>int main(){ int i,j,k,n; scanf("%d",&n); int a[31]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(k=0;k<n;k++) { ...原创 2018-03-15 22:10:49 · 176 阅读 · 0 评论 -
OJ 2018/3/9
/*A1012. 进制转换3long long 使用 _int64 FFFFFFFF 8个F 是最大边界0是 最小边界这里有个特别注意 VC++6.0 可以定义 _int64 替代 long long 但是 OJ 只认 long long*/#include<stdio.h>#include<string.h>#include<math.h...原创 2018-03-09 21:33:55 · 226 阅读 · 0 评论 -
OJ 2018/3/16
奇偶数分离/*03*/#include<stdio.h>int main(){ int i,j,k,n; scanf("%d",&n); int a[31]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(k=0;k<n;k++) { ...原创 2018-03-16 22:03:09 · 193 阅读 · 0 评论 -
OJ 2018/3/11
/*计算价格*/#include<stdio.h>int main(){ int i,a=3,b=2,c=8; int t[3]; for(i=0;i<3;i++) scanf("%d",&t[i]); printf("%d\n",a*t[0]+b*t[1]+c*t[2]); return 0;}/*A1018. 查找整数*/原创 2018-03-11 21:42:33 · 235 阅读 · 0 评论 -
OJ 2018/3/12
/*A1025. 字符串对比*/#include<stdio.h>#include<string.h>int main(){ char a[11],b[11]; gets(a); gets(b); int alen=strlen(a); int blen=strlen(b); if(alen<1||...原创 2018-03-12 19:20:28 · 192 阅读 · 0 评论 -
OJ 2018/3/18
/*阶乘因式分解(一)56*/#include<stdio.h>int main(){ int m,n; int tn; scanf("%d",&tn); while(tn--) { scanf("%d %d",&m,&n); int sum=0; int temp=0; while...原创 2018-03-18 21:53:41 · 205 阅读 · 0 评论 -
排序(更新中)
#include<stdio.h>#include<stdlib.h>#include<time.h>#define num 10int low = 0, high = num - 1; //高低标int a[num];//声明数组int i = 0, j, temp;int pivotops;//基准int qsortParition...原创 2018-03-06 09:12:36 · 193 阅读 · 0 评论 -
OJ 2018/3/19
/*谁获得了最高奖学金 60*/#include<stdio.h>#include<string.h>int main(){ char a[20];// 姓名 float b; //期末 float c; //评价 char d;// 干部 char e;// 西部 int p;//论文 int n;...原创 2018-03-19 22:13:42 · 183 阅读 · 0 评论 -
OJ 2018/3/23
#include<stdio.h>#include<math.h>int main() { int m,x; scanf("%d",&m); while(m--) { int count=0; scanf("%d",&x); int t = x; while(t>...原创 2018-03-23 21:53:14 · 206 阅读 · 0 评论 -
半数集VS半数单集
半数集:#includeint num=1;int f(int n) { for(int i=1; i<=n/2; i++) { num++; f(i); } return num;}int main() { int n; scanf("%d",&n); printf("%d",f(n));}半数单集:#includeint num = 1;int原创 2016-11-08 21:21:48 · 522 阅读 · 0 评论 -
字母或数字全排列问题
全排列:(提示)#include"stdafx.h" //这个头文件是在visual studio 2010 环境下运行时用到的 注释掉#include即可#include //这个头文件是在dev-c++ 5.11 环境下运行时用到的 注释掉#include"stdafx.h"即可#include"stdafx.h"//#inc原创 2016-09-28 21:48:02 · 757 阅读 · 0 评论 -
一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折n次,中间切一刀,会得到多少面条呢?
一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折n次,中间切一刀,会得到多少面条呢?#include#includeint main(){ //2 3 5 9 17 33 65 从0开始/**pow() 函数用来求 x 的 y 次幂(次方),其原型为:double pow(dou原创 2016-09-27 16:16:17 · 5161 阅读 · 0 评论 -
数据压缩算法-游程编码RLE
了解一下数据压缩算法:压缩算法主要分为两类1.有损压缩 2.无损压缩有损压缩有很多种,这里说一下无损压缩。无损压缩算法:行程编码(游程编码)[RLE(RUN-LENGTH ENCODING)] ,哈夫曼编码。RLE算法游程编码:例如:信息单元0304,03表示其后的象素个数是3个,04表示这些象素使用的是颜色索引表中的第五项的值。压缩数据展开后就是04 04 0原创 2016-07-25 13:34:37 · 4226 阅读 · 0 评论 -
数据压缩算法 lz77
lz77算法Lempel和Ziv于1977年发表论文至今,几乎我们日常使用的所有通用压缩工具,象ARJ,PKZip,WinZip,LHArc,RAR,GZip,ACE,ZOO,TurboZip,Compress,JAR„„甚至许多硬件如网络设备中内置的压缩算法,无一例外,都可以最终归结为这两个以色列人的犹太人杰出贡献。这里我做了两张图 详细讲解了 lz77数据压缩算法的具体步骤,以及给出原创 2016-07-26 00:21:47 · 597 阅读 · 0 评论 -
冒泡排序再学习改进冒泡排序(c++)
未经博主同意不得私自转载!不准各种形式的粘贴复制本文及盗图!经典的排序冒泡排序:编译器:dev-c++ 5.11c++版冒泡排序:#include using namespace std;int main(){ int a[10]={7,3,4,5,654,77,3,5,199,688}; for(int i=0;i<10;i++) for(int j=0原创 2016-08-21 18:04:44 · 887 阅读 · 0 评论 -
(算法)多少个1组成的整数可以被2011整除?
今天基本在抠老师留的作业题,还好都做出来啦,就是不知道对不对,我是抱着自己死抠不百度,不爬博翻帖,感觉这样会记得更劳一些!!!#include int main(){ int a,b,num; a = 1; for(num = 1;num { b = a%2011;原创 2016-09-04 17:15:19 · 888 阅读 · 0 评论 -
统计数字问题。给定一本书,其中包含n页,计算出书的全部页码中用到了多少个数字0…9。
#include int main(){ int a[10] = {0}; int input,i,j,m; printf("输入总页数:\n"); scanf("%d",&input); for(i = 1;i <= input;i++) { if(i >= 10) {原创 2016-09-04 17:17:32 · 5172 阅读 · 0 评论 -
金币阵列问题。有m*n枚金币在桌面上排成一个金币阵列。每一个金币正面朝上,或背面朝上,分别用0和1表示。 金币阵列游戏的规则是:(1)每次可将任一行金币翻过来放在原来的位置上;(2)每
#include #include #define MAX 10int main(){ int num, change; int m, n, score = 0; int a[MAX][MAX] = { 0 }; int b[MAX][MAX] = { 0 }; int c[MAX]原创 2016-09-04 17:24:01 · 2506 阅读 · 2 评论 -
小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。其标价都是4位数字(即千元不等)。小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了。
#include #include int main(){ int Na, Nb; int num = 0; for ( int i = 9999; i >= 1000; i-- ) /* 倒立后价格 */ for ( int j = 1025; j <= 9999; j++ ) {原创 2016-09-04 17:27:12 · 1943 阅读 · 0 评论 -
字典序问题。在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由26个小写字母组成。该字母表产生的升序字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1
调试后代码:#include int main(){ char a[7] = { 0 }; int i, j; int p,q; int num; int code=0; printf( "输入行数\n" ); scanf( "%d", &num ); printf(原创 2016-09-04 17:19:18 · 4885 阅读 · 0 评论 -
大数运算之阶乘
Int不能存储较大数int 代表有符号整数,也就是说,用 int 声明的变量可以是正数,可以是负数,也可以是零,但是只能是整数。标准规定 int 的最小取值范围是 -32767 到 32767。int 的取值范围因机器而异,但是一定要大于或者等于 -32767 到 32767。一般来说,int 占用一个字的内存空间。因此,字长为 16 位(Bit)的旧式 IBM 兼容机使用 16 位来储存原创 2016-10-08 22:03:42 · 802 阅读 · 0 评论 -
大数运算之加法
大数运算之加法:思路:一次性输入大数,利用for循环读入缓冲区数据,当读到回车符时结束,将char型转化为int型数据,char-'0'=int 倒置数组。因为是累加填入数组,运算时从低位开始,而实际运算是从右边开始的,方便进位。采用对折 /2交换元素,无需考虑奇偶数。长度对齐。长度不同时,可以直接将较长数组的低位加上进位直接赋值。进位。%10 /10 操作,分别得到原位置的值原创 2016-10-09 20:02:27 · 662 阅读 · 0 评论 -
众数问题
问题描述:给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。 ★算法设计:对于给定的由n个自然数组成的多重集S,计算S的众数及其重数。★数据输入:输入数据由文件名为input.txt的文本文件提供。文件的第1行为多重集S中的元素个数n;在接下来的n行中,每行有一个自然数。 ★结果输出: 将计算结果输出到文件output.txt。输出文件有原创 2016-10-09 22:16:15 · 585 阅读 · 0 评论 -
最多约数问题。正整数 x 的约数是能整除x的正整数,其约数的个数记为div(x),例如div(10)=4。设 a 和 b 是两个正整数,找出 a 和 b 之间约数个数最多的数 x 的约数个数。 样例
#include #include int main(){ int a, b; int numa = 0, numb = 0, num; printf( "输入两个数(中间用空格隔开):" ); scanf( "%d %d", &a, &b ); for ( int i = 1; i <= sqrt( a ); i++ )原创 2016-09-04 17:22:21 · 4345 阅读 · 2 评论 -
直接插入排序
直接插入排序:代码:#includeint insert(int a[],int num) { intj; for(inti=2; i<=10; i++) { a[0]=a[i]; j=i-1; while(a[0]<a[j]){原创 2016-10-10 21:55:24 · 280 阅读 · 0 评论 -
OJ 2018/3/21
/*另一种阶乘问题 65 */#include<stdio.h>int main(){ int a; scanf("%d",&a); while(a--) { int sum=0; int n; scanf("%d",&n); while(n) {...原创 2018-03-21 09:47:24 · 173 阅读 · 0 评论