今天把好久没登录的刷题网站重新上去了一遍写一一点点简单的代码,发现很多东西都已经忘掉了,现在把写过的题目都记录下来,留作笔记。

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
例如,输入”They are students.”和”aeiou”,
则删除之后的第一个字符串变成”Thy r stdnts.”。

其实这个题目很简单,关键是要想清楚两个字符型数组之间关系,另外我在写的过程中发现字符型数组不能直接赋值给字符型数组,可能是我上课没认真听还是我的写法有问题,后来只能用整型数组去记录然后以%c的形式输出就行。

#include <stdio.h>
#include <string.h>char ch1[100],ch2[100];
int main()
{gets(ch1);gets(ch2);//读取字符串int lenA,lenB;//计算字符串的长度lenA = strlen(ch1);lenB = strlen(ch2);int i,j;int flag;//用flag去做标记记录相同的字符for(i = 0; i < lenA; i++){flag = 0;//每次循环都要变为0,防止前面的累加for(j = 0; j < lenB; j++){if(ch1[i] == ch2[j]){flag++;//当相同时就加一//   printf("%d\n",flag);}}if(flag == 0)//flag为0时意味着没有出现相同,则输出该字符{printf("%c",ch1[i]);}}return 0;
}

开灯问题:有n盏灯,编号为1-n。第1个人把所有的灯打开,第二个人按下所有编号为2的倍数的开关(这些灯被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,打开的灯将被关闭),以此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯的编号。K≤n≤1000.

开灯问题应该是个很经典的问题了吧,我印象中这题我都已经写过两三次了,这题数据不大可以直接用桶排去做,需要注意的是因为第一个人负责开灯所以数组的遍历应该是从第二个人开始的。

#include <stdio.h>int arr[1010]={0};//数组赋初值
int main()
{int n,k;scanf("%d %d",&n,&k);
//  int count=0;for(int i=2;i<=n;i++){for(int j=2;j<=k;j++){if(i%j==0){arr[i]++;//(当i与j相等时或者i是j的倍数时放进桶中)}}}for(int i=1;i<=n;i++){if(arr[i]==0||arr[i]%2==0){//当桶里面没东西时则证明没有关灯,需要注意的是当桶中的数是二的倍数时也需要输出,因为关掉后又开了灯printf("%d ",i);}}return 0;
}

黑色星期五:13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二......星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400. 这里有一些你要知道的: 1900年1月1日是星期一. 4,6,11和9月有30天.其他月份除了2月有31天.闰年2月有29天,平年2月有28天. 年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年) 以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900和2100年是平年,而2000年是闰年. 请不要预先算好数据!

黑色星期五在网上也是很常见的一种题目,只要理清年月日之间的关系以及注意闰年的时候二月有二十九天,便可将此题写出,值得注意的是这题逻辑稍微有点复杂,需要用纸币在纸上写出。

#include <stdio.h>
//#include <string.h>int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//首先用一个数组去记录每个月的天数,因为数组开端是0所以数组多开了一格初始化为0,这样月份就从一月开始
int week[7]={0};//用一个数组去记录每周内每天出现的次数
int main()
{int year=1900;int n;int count=1;//一月一日是周一scanf("%d",&n);for(int i=0;i<n;i++,year++){if(year%400==0||(year%100!=0&&year%4==0)){mon[2]=29;//判断闰年对二月做出改变}for(int month=1;month<13;month++){//月轮回for(int day=1;day<=mon[month];day++){//每日if(day==13){week[count]++;//每逢十三就加一}count=(count+1)%7;//一周七天轮回}}mon[2]=28;//记得要将二月变回二十八日}printf("%d ",week[6]);for(int i=0;i<=5;i++)printf("%d ",week[i]);//注意题目输出要求return 0;
}

小明的三角形: 自从小明上了 大学之后,就感觉整个人的智商就不够用了 ,连个简单的判断三角形都不会了。那么作为聪明的你们,是时候展现真正的技术了。

这题就是个简单题,送分的,但是我也不清楚为什么不能用两边和大于第三边做,只能用两边之差小于第三边,注意题目的数据范围(我做了一个排序去保证a<b<c,我不确定题目的样例是否都是满足这个关系)。

#include <stdio.h>int main()
{long int a,b,c;scanf("%ld %ld %ld",&a,&b,&c);while(a!=0&&b!=0&&c!=0){int t;if(a>b){t = a;a = b;b = t;}if(b>c){t = b;b = c;c = t;}if(a>c){t = a;a = c;c = t;}if(c-b<a){printf("yes\n");}else{printf("no\n");}scanf("%ld %ld %ld",&a,&b,&c);}return 0;
}

数数字:问题很简单有个1到n的数列,数一下其中能够被2,3,5整除的数字的个数。例如当n = 6 ,的时候有 2,3,4,5 , 6.这5个数满足条件,所以我们应该输出5,是不是很简单?

这个题目一看,哎送分题,但是一不注意取值范围和时间限制,就变成了送命题,我开始写了很久都是时间超限,一眼写出的代码如下:

#include <stdio.h>int main()
{int n;while(scanf("%d",&n)!=EOF){int i;int count = 0;for(i = 1; i <= n; i++){if(i % 2 == 0){count++;}else if(i % 3 == 0){count++;}else if(i % 5 == 0){count++;}}printf("%d\n",count);}return 0;
}

这样的代码很容易超限,所以后来我想办法把重复的数字直接统计就行不需要再做判断这样的话时间就会少很多,但是用筛选法并不好做,于是我在百度上找到了一个叫做容斥原理的东西,这里需要引入容斥原理的概念这题目就很容易写出来,先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。用容斥原理的话时间复杂度也会低不少,很大的数也能一下子就算出答案。

用韦恩图大概就是这样

红色重叠部分则是需要去除的,剩下的白色部分就是我们要找的集合,于是新的代码就诞生了:

#include <stdio.h>
#include <math.h>int main()
{int n;int a,b,c;int a1,b1,c1;int sum;while(scanf("%d",&n)!=EOF){a = n / 2;b = n / 3;c = n / 5;a1 = n / (2*3);b1 = n / (2*5);c1 = n / (3*5);sum = n / (2*3*5);printf("%d\n",a+b+c-a1-b1-c1+sum);//容斥原理}return 0;
}

黑黑的小叶子:

从前有一个小叶子,他很黑,非常黑,但自从来了学校后,由于天天宅,竟按一定比率慢慢变白了。现给出小叶子的黑化程度n和变白比率v,求m天后小叶子的黑化程度。

大水题一个,其实只需要弄清楚变白比率v的关系式就行

#include <stdio.h>int main()
{float n;float v,V;float m;scanf("%f",&n);scanf("%f",&m);scanf("%f",&v);float temp = n;for(int i = 0;i < m; i++){temp *= v;V = n - temp;temp = V;n = V;// printf("%f\n",temp);}printf("%.1f",V);return 0;
}

兔子的谎言:脑静急转弯

。。。。。。。开始我还做错了一次想错了

#include <stdio.h>int main()
{printf("甲:2岁\n乙:4岁\n丙:3岁\n丁:1岁\n");return 0;
}

接下来就是今天学习的内容:

今天去MOOC上重新复习了一遍字符串(对字符串理解还不是很深),以及指针的使用以及运作。

还有今天学习的《啊哈!算法》,出于对书的严谨我决定从头开始看,但是排序的内容大部分我都会了桶排与冒泡也在其他文章中写过,今天的学习对我影响最深的应该是快速排序,让我加深了对快排的理解(我自己平常很少用到快排)。快排呢听名字就知道它很快,快到什么程度,它的平均时间为O(NlogN),最慢也是与冒泡一致为O(N*N)。

#include <stdio.h>int a[100];//定义全局变量,该变量要在子函数中使用
void Quicksort(int left,int right)
{int i,j,t,temp;if(left > right){return;}temp = a[left];//temp存储基准数i = left;j = right;while(i != j){//顺序很重要,要先从右往左找while(a[j] >= temp && i < j){j--;}//再从左往右找while(a[i] <= temp && i < j){i++;}//交换两个数在数组中的位置if(i < j){t = a[j];a[j] = a[i];a[i] = t;}//当i与j还没有相遇的时候}a[left] = a[i];a[i] = temp;//基准值归位Quicksort(left,i-1);//继续处理左边,这是个递归的过程Quicksort(i+1,right);//同上,处理右边,递归// return NULL;
}
int main()
{int i,j;int n;scanf("%d",&n);//读取数据for(i = 0; i < n; i++)scanf("%d",&a[i]);Quicksort(0,n-1);//函数调用for(i = 0; i < n; i++)printf("%d ",a[i]);return 0;
}

今天的学习到这里就差不多已经结束了,今天也没学到啥很多有用的内容,明天继续加油吧!

12月26日学习记录相关推荐

  1. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(12月26日-1月1日)

    分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(12月26日-1月1日) 本周Silverlight学习资源更新   vs2010 学习Silverlight学 ...

  2. 个人空间岁末大回报活动12月26日获奖名单

    个人空间岁末大回报: 动手就有C币拿!活动已于15日启动,非常感谢各位网友的大力支持和积极参与,个人空间的所有工作人员在这祝大家好运,希望你们每天都能拿到C币存入社区银行! 欢迎各位获奖者去自己的银行 ...

  3. 2021考研时间公布 2020年12月26日至27日进行初试

    中新网客户端9月4日电 记者从教育部获悉,2021年全国硕士研究生招生考试初试时间,安排在2020年12月26日至27日(每天上午8:30-11:30,下午14:00-17:00),超过3小时或有使用 ...

  4. 云顶之弈5.26服务器维护,云顶之弈维护到几点 云顶之弈维护公告最新 云顶之弈12月26日几点能上...

    云顶之弈维护到几点今天?云顶之弈新版本更新内容是什么?云顶之弈停机更新什么时候结束?想必有不少的小伙伴们都想知道吧,下面云顶之弈维护公告最新,感兴趣的小伙伴们一起来看看吧. 云顶之弈维护公告最新 维护 ...

  5. 拳皇世界6月13服务器维护,《拳皇世界》12月26日例行维护公告

    亲爱的格斗家们: 为了给广大格斗家们创造更加稳定的游戏体验,游戏将在12月26日10:00-12:00对游戏进行例行维护,并对部分区服进行数据互通操作.请各位玩家相互转告,并提前留意维护时间,以免造成 ...

  6. ro手游服务器维护公告,仙境传说RO手游12月26日5点-11点停服维护公告-仙境传说RO手游12月26日更新了什么-Appfound...

    仙境传说RO手游将会在12月26日5点-11点进行停服维护哦!那么想了解跟宠维护更新的小伙伴们,下面就让我们一起来看一下吧! 亲爱的冒险者, 我们将于12月26日5点-11点进行一次停服维护,此次维护 ...

  7. 正大国际期货:2022年12月26日至1月1日

    A股投资日历2022年12月26日至1月1日 首架C919验证飞行.2022汾酒全球经销商大会.货银对付改革正式实施-- 12月24日:中国(长沙)国际汽车博览会,影响:汽车 12月26日:货银对付改 ...

  8. 2021年总结(2021年1月1日至2021年12月26日)

    前言 时间飞快,转眼就到了年底,2021年就这么过去了,今年也是正式工作的第一年,记得好像是2020年7月13号进的公司,进入社会,9月7号转正,正式成为一名公司员工,到现在2021年12月26号大概 ...

  9. 如何看待 12 月 26 日发布的华为云 WeLink 企业智能工作平台?能对标得过企业微信和钉钉吗?

    智东西12月26日消息,今天,华为云正式推出智能工作平台WeLink,提供持续更新的多种企业应用和智能硬件.该平台通过联接团队.联接业务.联接知识.联接IoT,助力企业实现数字化转型. 华为云WeLi ...

最新文章

  1. 欢迎使用人体运动检测与跟踪CSDN-markdown编辑器
  2. 深圳大学计算机暑期学校,The First Day-深度学习暑期学校
  3. 系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统
  4. 学python可以做什么职业好-业余学Python能做什么?对职业发展有什么帮助?
  5. AP付款出现(-1)例外处理
  6. java有参数 无参数方法
  7. 关于MySQL出现锁等待lock wait timeout exceeded; try restarting transaction 的解决方案
  8. unionall mysql_5分钟了解MySQL5.7union all用法的黑科技
  9. 2017.6.27 树上操作 思考记录
  10. 转:Redis使用认证密码登录
  11. 计算机与信息处理基础知识教案,高效的信息处理工具——计算机基础知识教案...
  12. Spring装配集合属性
  13. 相亲中的最优停止理论-相亲中的数学
  14. 动态系统建模与仿真 基本知识笔记(源自DR_CAN)
  15. 51单片机原理以及接口技术(一)-单片机发展概述
  16. 编程语言 - 强弱/动静态类型 - 整理
  17. 广西首届网络安全选拔赛 MISC Wirteup
  18. 2002版《首席执行官》观后感及总结
  19. 高德地图、使用vue-amap实现地图的点击地址和经纬度的转换并显示
  20. faiss 三种基础索引方式

热门文章

  1. 3.1 Xilinx系列产品介绍
  2. ArcMap出图小技巧:图例,比例尺,指北针,标题(附练习数据)
  3. linux+gps测试流程图,GPS测试标准与测试项目简介
  4. raid 物理盘缓存状态_Dell PowerEdge系列服务器RAID和物理磁盘开机自检错误信息及说明...
  5. Unknown database ‘xxx‘
  6. 伯努利贝叶斯分类器的应用
  7. 一些基础电路和物理量在线换算公式
  8. android系统流畅度排行,最流畅安卓手机排名:华为mate40Pro第六,第一堪比iOS!...
  9. 《我是一只IT小小鸟》连载四
  10. html5 足球比赛阵容图,五人足球战术阵型图文全解