c/c++快乐算法第一天

2023-07-10,

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++快乐算法第一天的相关教程结束。

《c/c++快乐算法第一天.doc》

下载本文的Word格式文档,以方便收藏与打印。