基础(一)C++语言 第二章 顺序结构程序设计 第二节 常量和变量 2068:【例2.6】鸡兔同笼

【题目描述】

数学中经典的“鸡兔同笼”问题,已知头共x个,脚共y只,问笼中的鸡和兔各有多少只?

【输入】

头和脚的数量。

【输出】

鸡和兔各自数量。一个空格隔开。

【输入样例】

30 90

【输出样例】

15 15
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
	/*
	int x,y;
	int a=0;
	int b=0;
	scanf("%d %d",&x,&y);
	for(int i=0;i<=x;i++){
		for(int j=0;j<=x;j++){
			if(i+j==x&&i*2+j*4==y)
			{
				printf("%d %d",i,j);
			}
		}
	} 
	return 0;
	*/
	/*
	【分析】设鸡为j只,兔为t只,头为h,脚为f,那么有:
	j+t=30
	2*j+4*t=90
	假设笼中30个头全都是兔,那么都按每头4只脚计算,总脚数为(4*h),
	与实际脚数(f)之差为(4*h-f),如果这个差=0,则笼中全是兔(即鸡为0只);
	如果这个差值>0,说明多计算了脚数,
	凡是鸡都多计算了两只脚,用它除以2就能得到鸡的只数,算法为:
	 j=(4*h-f)/2 //先用脚数差值除以2算出鸡的只数
	 t=h-j       //再用总头数减鸡数算出兔的只数 
	*/
	int h,f,j,t;//定个变量 
	scanf("%d %d",&h,&f);//赋初始值
	j=(4*h-f)/2;//计算鸡的只数
	t=h-j;//计算兔的只数
	printf("%d %d",j,t);//输出结果
	return 0; 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于第二章的词法分析程序和第三章的语法分析程序,使用C/C++语言编写PL/0编译器。首先,我们需要通过词法分析程序将源代码分解成标记流,然后进行语法分析,构建语法树。在语法分析程序中,我们需要实现对PL/0语言的文法规则的识别和分析,包括识别变量声明、赋值语句、条件语句、循环语句等。然后,根据语法树和语法规则,进行语义分析和中间代码生成。在中间代码生成阶段,我们需要将语法树转换为PL/0语言的中间代码表示,包括生成三地址码、四元式等。最后,通过目标代码生成将中间代码转换为目标机器代码,使得PL/0程序可以在计算机上执行。 在编写编译器的过程中,我们需要考虑PL/0语言的特性和语法规则,并结合之前实现的词法分析程序和语法分析程序,逐步完成不同阶段的编译器功能。同时,我们需要处理错误和异常情况,保证编译器的稳定性和健壮性。另外,为了提高编译器的性能,我们还可以进行优化,包括词法分析和语法分析的优化、中间代码优化等方面。 总之,基于第二章的词法分析程序和第三章的语法分析程序,使用C/C++语言编写PL/0编译器需要深入理解PL/0语言的语法和语义规则,同时结合编译原理相关理论知识,逐步完成不同阶段的编译器功能,并进行优化,以实现一个高效、稳定的PL/0编译器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值