c/c++感受算法乐趣(1)

开始时间2023-04-14 18:31:47

结束时间2023-04-14 22:06:02

前言:经过两天的学习,是不是发现编程也挺简单的。其实不然,学好算法同时也是练习编程的关键一环。接下来每周末我将会带领你感受算法的乐趣。目前题目摘自c语言趣味编程100例清华大学出版社,我会根据编程四部曲给出每题题解,话不多说让我们一起来看看吧!

第一章 趣味算法入门

第一题 百钱白鸡问题

一.问题描述

二.设计思路

  本题无输入,百钱最多买公鸡20只,母鸡33只,小鸡很多只,很明显可以用三个嵌套循环模拟,达成条件为公鸡加母鸡加小鸡为100只而且用百钱;

三.流程图

四.源代码

#include<stdio.h>
int main()
{
int gongji,muji,xiaoji;
for(gongji=0;gongji<20;gongji++)
{
for(muji=0;muji<33;muji++)
{
for(xiaoji=0;xiaoji<=100;xiaoji++)
{
if((gongji*5+muji*3+xiaoji/3.0)==100&&(gongji+muji+xiaoji)==100)
{
printf("公鸡=%d只\t母鸡=%d只\t小鸡=%d只\n",gongji,muji,xiaoji);
}
}
}
}
return 0;
}

五.运行结果

第二题 借书方案知多少

一.问题描述

二.设计思路

  无输入,很明显的枚举模拟,a可以选五次,同理bc也一样,但要满足abc三位小朋友借到的不是一本书即if(a!=b,b!=c,c!=a)

三.流程图

四.源代码

#include<stdio.h>
int main()
{
int a,b,c,i=0;
for(a=1;a<=5;a++)
{
for(b=1;b<=5;b++)
{
for(c=1;c<=5;c++)
{
if(a!=b&&b!=c&&c!=a)
{
printf("a分到第%d本书 b分到第%d本书 c分到第%d本书",a,b,c);
i++;
if(i%3==0)printf("\n");
}
}
}
}printf("共有%d种分法",i);
return 0; }

五.运行结果

第三题 打鱼还是晒网

一.问题描述

二.设计思路

  本题有输入(输入为某一天的年月日信息),我们可以先求出这一天距离1990.1.1的天数,然后以五为周期求余数,余数为123则打鱼,余数为40则为晒网;

三.流程图

四.源代码

#include<stdio.h>
int main()
{
printf("请以年月日的格式输入指定日期");
int year,month,day;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d %d %d",&year,&month,&day);
int sum=0;
int i=1990;
for(i=1990;i<year;i++)
{
sum+=365;
if((i%4==0&&i%100!=0)||(i%400==0))
{
sum++;
}
}
for(i=0;i<month-1;i++)
{
if(month==1)break;
sum+=a[i];
}
if(month>2){
if((year%4==0&&year%100!=0)||(year%400==0))
{
sum++;
}
}
sum+=day-1;
int yush=sum%5;
if(yush%5==1||yush%5==2||yush%5==3)
{
printf("打鱼");
}
else
{
printf("晒网");
}
return 0;
}

五.运行结果

每日一mo:过度的清醒,会让人觉得薄凉冷漠;过度的沉醉,又会让人感到浮浅迷离。所以,完美的人生,当是留一半清醒,留一半醉意。

c/c++快乐算法第一天的更多相关文章

  1. PageRank算法第一篇

    摘要by crazyhacking: 一 搜索引擎的核心问题就是3个:1.建立资料库,通过爬虫系统实现:2.建立一种数据结构,可以根据关键词找到含有这个词的页面.通过索引系统(倒排索引)实现.3排序系 ...

  2. EM算法--第一篇

    在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(LatentVariable).最大期望 ...

  3. 【免费讲座IX算法第一阶段】转专业找CS工作“打狗棒法”

    个人经验CS不相干,如何收拾简历?如何获取知识,在最短的时间内找到一份工作需要?如何避免盲目刷称号,迅速制定学习计划?如何准备面试? 星期五.九算法黄蓉老师受邀嘉宾 [在线共享] 她成功转专业的六个月 ...

  4. 编程算法 - 第一个仅仅出现一次的字符 代码(C)

    第一个仅仅出现一次的字符 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 在字符串中找出第一个仅仅出现一次的字符. 字符是char类型, 所以匹 ...

  5. Apriori算法第一篇

    摘要: Apriori算法是产生k项高频项目组的一般手段.算法概要:首先产生k项高频项目集合Lk,自身链接形成k+1项的项目结合C(k+1),然后剪枝(去掉以前去掉的不满足支持度的高频),生成K=1项 ...

  6. 【学习总结】java数据结构和算法-第一章-内容介绍和授课方式

    总目录链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 几个经典算法面试题 算法和数据结构的重要性 几个经典算法面试题 字符串匹配 暴力法:慢 kmp算法:更 ...

  7. poj3461 字符串匹配 熟悉kmp算法第一题

     题意:  计算一个字符串在另一个字符串中出现的次数. #include<cstdio> #include<cstring> #include<algorithm> ...

  8. AI算法第一天【概述与数学初步】

    1. 机器学习的定义: 机器从数据中学习出规律和模式,以应用在新数据上作出预测的任务 2.学习现象: (1)语言文字的认知识别 (2)图像,场景,物体的认知和识别 (3)规则:下雨天要带雨伞 (4)复 ...

  9. 实现 RSA 算法之基础公式证明(第一章)(老物)

    写这篇日志是拖了很久的事情,以前说要写些算法相关的文章给想学信息安全学(简称信安),密码学的同学提供些入门资料,毕竟这种知识教师上课也不会细讲太多(纯理论偏重),更不用说理解和应用了,说到RSA公钥( ...

  10. Python之路【第二十四篇】Python算法排序一

    什么是算法 1.什么是算法 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出.简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果. ...

随机推荐

  1. vue3.0+vite+ts项目搭建--初始化项目

    使用yarn yarn create vite 使用pnpm pnpx create-vite(pnpm create vite + 项目名) 根据提示输入项目名称,选择vue框架,选择vue-ts, ...

  2. (十三).CSS3中的变换(transform),过渡(transition),动画(animation)

    1 变换 transform 1.1 变换相关 CSS 属性 CSS 属性名 含义 值 transform 设置变换方式 transform-origin 设置变换的原点 使用关键字或坐标设置位置 t ...

  3. 【原创】android 7.0 通知报错 java.lang.SecurityException: You need MANAGE_USERS permission to: check if specified user a managed profile outside your profile group

    项目中在后台发送通知,突然某一天测出在Android 7.0上通知发送失败,那么根据提示,我们尝试加了MANAGE_USERS权限,看起来是个系统级别权限,验证后果然无效.接着在搜索后都无果,似乎大家 ...

  4. Angular Material TreeTable Component 使用教程

    一. 安装 npm i ng-material-treetable --save npm i @angular/material @angular/cdk @angular/animations -- ...

  5. ideal中热部署JRebal的设置

    1.ideal中安装插件: 2.打开网址:https://www.guidgen.com/   打开链接获取新的GUID码 3.网址和UUID码拼接:http://127.0.0.1:8888/ca3 ...

  6. Oracle-展示的时候出现????乱码

    Oracle-展示的时候出现????乱码 配置环境变量: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK

  7. debian 系统中安装 broadcom 无线网卡驱动

    首先要修改 apt 的配置文件,允许安装 non-free 软件.即在 /etc/apt/sources.list 中生效的行的最后加上 contrib non-free,再使用 apt-get up ...

  8. 解决 SMTP Error: data not accepted php邮件发送失败的问题

    php 发送邮件 出现  SMTP Error: data not accepted   1.正常情况下 都是正常的 但是偶尔 发送失败了 163.com 邮箱发送不了了. 所以去查了下问题所在  在 ...

  9. pugixml XML格式处理库的介绍和使用(面向业务编程-格式处理)

    pugixml XML格式处理库的介绍和使用(面向业务编程-格式处理) 介绍 pugixml是一个轻量级的C++ XML处理库.它的特点: 类似dom的界面,具有丰富的遍历/修改功能 非常快速的非验证 ...

  10. hydra暴力破解各种服务

    hydra 在爆破工具中,hydra可是数一数二的存在,是著名黑客组织thc开发的一款开源的暴力密码破解工具,可以在线破解多种密码 参数 作用 -l 指定用户名 -p 指定密码 -L 指定用户字典 - ...