1.蔡勒公式求星期
2.递归算法分组
3.背包问题

1.用蔡勒公式求星期
蔡勒公式(有多个,这里就写我熟悉的一个):
w=(y+y/4+c/4-2c+26(m+1)/10+d-1)%7;
w:所求星期
y:年份的后两位数
c:年份的前两位数
m:月份(几月)
d:日期(几号)
注意:
1.当m为1或2月份时,你的把它当作是上一年的13或14月份带进去计算
2.当求的w小于0时要将w加上7,当w等于0时,为星期天

举例:黑色星期五
黑色星期五源于西方的宗教信仰与迷信:耶稣基督死在星期五,而13是不吉利的数 字。两者的结合令人相信当天会发生不幸的事情。星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的13日又恰逢星期五就叫“黑色星期五”。找出一年内有有哪些天是“黑色星期五”。
代码如下

#include <stdio.h>int main()
{int year;int y,c,m,d,w;printf("请输入你想查找的年份:");scanf("%d",&year);y = year % 100;c = year / 100;for(int i=1; i<=12; i++){m = i;if(i==1 || i==2){m = i+12;y = y-1;}w = (y+y/4+c/4-2*c+26*(m+1)/10+13-1)%7;if(w<0) w+=7;if(i==1 || i==2)y++;if(w == 5){printf("%d-%d-%d\n",year,i,13);}}return 0;}

运行结果:

2.用递归算法求组合
示例:将从6物品中取3个有哪几种方式

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10000
#define M 3
char GROUP[N][M+1];//注意要留个位置给'\0',不然不好打印,scanf以'\0'打印结束
char group[M];
int L = 0;
void Combination(char *str,int len,int m) {//整体思路//从后往前选,先选第一个位置的元素,一共有4中选法:f,e,d,c(因为要留出两个元素给第二第三个位置) //再选第二个位置的元素,从第一个位置的元素的后面开始选取,例如当第一个选取了f,那就有4种选法:e,d,c,b//再选第三个位置,从第二个位置的元素的后面开始选取,当第二个位置选区了e,那就有4种选法,依次类推//最后到了第一个位置选到c时,只有一种选法cba组合结束,跳出递归 if(m == 0) {for(int i=M-1; i>=0; i--) {GROUP[L][i] = group[i];}L++;return ;}for(int i=len; i>=m; i--) {group[m-1] = str[i-1];Combination(str,i-1,m-1);}
}
int main() {char str[] = {'a','b','c','d','e','f'};int len = sizeof(str);int m = M;char ch;Combination(str,len,m);for(int i=0; i<L; i++) {ch = (i==3 || (i-3)%4 == 0)?'\n':'\t';printf("%s%c",GROUP[i],ch);}
}

运行结果:

3.背包问题

//有物品标号为1,2,3,4,物品大小为2,3,4,5,物品价值为3,4,5,6的物品
//现在有一个容量为8的1级包,问这个一级包能最大能装多少价值的物品
//整体思路
//定义2个1维数组value[5]={0,3,4,5,6},big={0,2,3,4,5}
//定义一个2维数组v[i][j]用来表示容量为j的一级包装的前i个物品的最大价值
//首先初始化数组为0,当i==0||j==0时,v[0][j]||v[i][0]==0,
//然后选区i=1时j分别选取1,2,3,4,5,6,7,8时的值
/*v[1][1] = 0:第一个物品的大小为2,而一级包的容量只有1无法装入,此时有v[1][1] == v[0][1] == 0,因为第一个物品无法装那相当于物品少了一件
*/
/*v[1][2] = 2:一级包容量加1可以装入第一个物品,此时有两种情况,第一:我选择装,但装了价值不一定是最大的,第二,我选择不装,去装留着空间去装后面价值更大的物品,此时v[1][2]=max(v[0][2],v[0][2-big[1]]+value[1])结果为2
*/
//.....
/*v[4][8]:第四个商品的大小为5<8,因此v[4][8]=max(v[3,8],v[0][8-big[4]]+value[4])v[3][8]:第三个物品大小为4<8,因此v[3][8] = max(v[2,8],v[2,8-big-[3]]+value[3]).......最后算出v[4][8] = 10;
*/
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>using namespace std;
int main()
{int value[] = {0,3,4,5,6};int big[] = {0,2,3,4,5};int bag = 8;int v[5][9] = {0};for(int i=1; i<5; i++){for(int j=1; j<9; j++){if(big[i] > j) v[i][j] = v[i-1][j];else v[i][j] = max(v[i-1][j],v[i-1][j-big[i]]+value[i]);}}printf("v[4][8] = %d",v[4][8]);
}

运行结果:

c一些基本算法和公式相关推荐

  1. 【朴素贝叶斯】深入浅出讲解朴素贝叶斯算法(公式、原理)

    本文收录于<深入浅出讲解自然语言处理>专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅! ​个人主页:有梦想的程序星空 ​个人介绍:小编是人工智能领域硕士,全栈工 ...

  2. 数据结构与算法之算法基础公式

    数据结构与算法顾名思义包含数据的基本结构和算法分析.开始学习数据结构与算法,但是高等数学已经忘得差不多了.在这里,先把需要复习的高等数学公式在这里记录下. 指数 指数:是幂运算aⁿ(a≠0)中的一个参 ...

  3. 贷后还款日算法-excel公式

    2018年9月时,跟同事要了风控系统中还款日的算法,自己用excel公式写出了计算每期还款日的函数. 下图是还款日算法.还款日为 :合同日期-1天+(自然月*当期其次). 当合同日为每月第一天.最后第 ...

  4. 写作故事中算法-麦基公式

    最近被分配来软文编写任务,应领导要求,系统学习写作方法论文章.麦基公式是所有故事模型的核心模型,谓之曰"道",能提升我们对演讲.编剧的认知,比如坎贝尔总结出的英雄之旅故事模型,普洛 ...

  5. 小波分析c语言编程,小波分析算法的公式与C语言实现 - 全文

    一.小波分析算法的计算 1.Mallat算法[经典算法] 在小波理论中,多分辨率分析是一个重要的组成部分.多分辨率分析是一种对信号的空间分解方法,分解的最终目的是力求构造一个在频率上高度逼近L2(R) ...

  6. 关于逆波兰算法进行公式单位的推导

    关于逆波兰算法的链接如下逆波兰算法 原理:将一个长表达式转化为2个数字之间的运算. 需求:利用逆波兰算法,推导出一个字母长表达式的单位 import java.util.ArrayList; impo ...

  7. 算法(公式法):判断是否完全平方数

    /** 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 说明:不要使用任何内置的库函数,如  sqrt. 示例 1: 输入:16 输出: ...

  8. google排名算法,公式

    学习了一段时间大概知道些SEO常识,但是具体每一项的影响有多少自己并不清楚,对自己来说是个谜,今天偶然看到2010年google排名算法,觉得对自己很有帮助,感觉清晰多了.虽然百度文库里都有,发出来, ...

  9. 圆周率计算法公式算法(圆周率公式算法)

    面积: S=ah/2(2).已知三角形三边a,b,c,则 (海伦公式)(p=(a+b+c)/2)S=√[p(p-a)(p-b)(p-c)]=(1/4)√[(a+b+c)(a+b-c)(a+c-b)(b ...

最新文章

  1. Rafy 框架 - 大批量导入实体
  2. 页面显示 amp html6,浅谈HTML5 amp;amp; CSS3的新交互特性
  3. lenovo服务器换系统重装系统_如何给lenovo电脑重装系统 lenovo电脑重装系统步骤...
  4. 计算机专业大学生每天睡多久,大学生睡眠时间最少的10个专业!是你的专业吗?...
  5. WebApiClient的接口输入验证
  6. 清洁单元测试图案–演示幻灯片
  7. 爬虫小记:利用cookies跳过登陆验证码
  8. 航季日期的过去+java_Java 将一段时间以周、月、季分割
  9. javascript设计模式之工厂模式
  10. 如何解决VC++ 6.0 在win7下的兼容性问题
  11. 删除pdf(论文)的行号
  12. HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)
  13. 停车场管理(C语言版)
  14. Python根据拼音对中文排序
  15. ASP.NET 安全认证(二)
  16. 爬虫反反爬学习资料整理
  17. python 补获按键_qpython可以捕获耳机按键吗?
  18. 关于thinkpad安装win10操作系统
  19. ArithmeticException - 没有可确切表示的小数结果
  20. TI单芯片毫米波雷达软件架构研究(一)

热门文章

  1. Docker:MacOS环境下修改容器的端口号
  2. Amazon S3 Tools 简介及使用
  3. 通过手机安装 AndFTP 应用访问计算机FTP服务器
  4. UVM field automation
  5. Alientek SMT32开发板 跑马灯实验
  6. vl_Feat---vl_slic的使用
  7. 单片机c语言除法,单片机C语言知识点全攻略
  8. Towards Generative Aspect-Based Sentiment Analysis 论文阅读ACL2021
  9. 信息系统项目管理师就业前景分析
  10. python解决数学问题的实例_三十道python实战练习习题