Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程,前面课程中给大家讲解了一些常规的知识点,那么本次课,我们一起来练习挑战一下!!
本套课程将会从0基础讲解C语言核心技术,适合人群:
- 大学中开设了C语言课程的同学
- 想要专升本或者考研的同学
- 想要考计算机等级证书的同学
- 想要从事C/C++/嵌入式开发的同学
================点个关注吧================
=========================================
f 2.12 逻辑思维:鸡兔同笼
【题目需求】
今有稚兔同笼,上有 35 头,下有 94 足,问稚兔几何?
现在有若干只鸡,若干只兔,丢到一个笼子里
从上面看有 35 个头
从下面看 94 只脚
问有多少只兔子多少只鸡
【参考代码】
/**
【题目需求】
今有稚兔同笼,上有 35 头,下有 94 足,问稚兔几何?
现在有若干只鸡,若干只兔,丢到一个笼子里
从上面看有 35 个头
从下面看 94 只脚
问有多少只兔子多少只鸡
**/
#include <stdio.h>
int main(){
//从上面看有 35 个头 ,鸡和兔子都只有1个头
// 假设鸡哥x只,那么兔子就有35-x只
// 从0开始假设鸡的数量
// 1. 先假设鸡有0只,兔子就有35-0只, 再看脚是否满足94只
// 2. 鸡有1只 ,兔子有35-1只 再看脚是否满足94只
// 3. 鸡有2只 ,兔子有35-2只 再看脚是否满足94只
// ......
// 4. 鸡有35只,兔子0只 再看脚是否满足94只
for(int x=0;x<=35;x++){ // 假设法:x是鸡的数量
// 条件1:从上面看有 35 个头
// 计算兔子数量
int y = 35-x;
//从下面看 94 只脚
//鸡哥2只脚,兔子有4只脚
if(x*2+y*4==94){
printf("鸡的数量:%d,兔子的数量:%d\n",x,y);
}
}
return 0;
}
f 2.13 逻辑思维:兔子生崽
假设一对兔子从第三个月开始,生下下一对兔子。假设兔子不死。生下来的兔子同样从第三个月开始,生下一对兔子。
问 N 个月之后,一共有多少只兔子。
【参考代码】
/**
假设一对兔子从第三个月开始,每个月都生下下一对兔子。
假设兔子不死。生下来的兔子同样从第三个月开始,每个月生下一对兔子。
问 N 个月之后,一共有多少只兔子。
第1个月: 1 1 num1
第2个月: 1 1 num2 num1
第3个月: 1 1 2 sum num2 num1
第4个月: 1 1 1 3 sum num2
第5个月: 1 1 1 1 1 5 sum
第6个月: 1 1 1 1 1 1 1 1 8
第7个月: 1 1 1 1 1 1 1 1 1 1 1 1 1 13
从第3个月开始,当前月份的兔子对数是前两个月兔子对数的和
**/
#include <stdio.h>
int main(){
int month = 0;// 月数
printf("请输入月数:");
scanf("%d",&month);
int num1 = 1;// 前前一个月的兔子对数
int num2 = 1;// 前一个月的兔子对数
int sum = 0; // 计算和
if(month<=2){
printf("第%d个月后,一共有%d只兔子\n",month, 2);
}else{
// 第3个月开始,兔子的对数,就前面两个月的对数和
for(int i=3;i<=month;i++){
// num1 前前一个月的兔子对数
// num2 前一个月的兔子对数
sum = num1+num2;
// 重新调整 前前一个月的兔子对数和前一个月的兔子对数
// 方便计算下一个月的对数
num1=num2;
num2=sum;
}
printf("第%d个月之后,一共有%d对兔子,共%d只\n",month,sum,sum*2 );
}
return 0;
}