欢迎来到天天文库
浏览记录
ID:62067806
大小:542.00 KB
页数:84页
时间:2021-04-14
《最新c语言课件--简单计算题课件课件PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、c语言课件--简单计算题课件2.1例题:鸡兔同笼问题描述一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物输入数据第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(a<32768)。输出要求n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。输入样例2320输出样例00510输入输出#includ
2、eintmain(){intnCases,i,nFeet;scanf("%d",&nCases);for(i=0;i3、/2);}}例程实现中常见的问题这是一个数学计算题,出错有一下几种情况:1)因为对问题分析不清楚,给出了错误的计算公式;2)不用数学方法,而试图用枚举所有鸡和兔的个数来求解此题,造成超时;3)试图把所有输入先存储起来,再输出,开的数组太小,因数组越界产生运行错;4)在每行输出末尾缺少换行符;5)对输入输出语法不熟悉导致死循环或语法错。2.2例题:棋盘上的距离国际象棋的棋盘是黑白相间的8*8的方格,棋子放在格子中间。王、后、车、象的走子规则如下:王:横、直、斜都可以走,但每步限走一格。后:横、直、斜都可以走,每步4、格数不受限制。车:横、竖均可以走,不能斜走,格数不限。象:只能斜走,格数不限。写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。输入输出要求输入数据第一行是测试数据的组数t(0<=t<=20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字母从“a”到“h”,数字从“1”到“8”。输出要求对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出”Inf".输入样例2a1c3f55、f8输出样例2121311Inf解题思路这个问题是给定一个棋盘上的起始位置和终止位置,分别判断王、后、车、象从起始位置到达终止位置需要的步数。首先,王、后、车、象彼此独立,分别考虑就可以了。所以这个题目重点要分析王、后、车、象的行走规则特点,从而推出它们从起点到终点的步数。王的行走规则我们假设起始位置与终止位置在水平方向上的距离是x,它们在竖直方向上的距离是y。根据王的行走规则,他可以横、直、斜走,每步限走一格,所以需要的步数是min(x,y)+abs(x-y)即x,y中较小的一个加上x与y之差的绝对值,即x,y的6、最大值。后行走的规则根据后行走的规则,她可以横、直、斜走,每步格数不受限制若两个格子同行(x=0)、同列(y=0)或同斜线(x=y)所需步数为1;否则所需步数为2;12341234ST车行走的规则根据车行走的规则,它可以横、竖走,不能斜走,格数不限若两个格子同行(x=0)或同列(y=0)需要步数为1;否则需要步数为2;12341234ST象行走的规则根据象行走的规则,它可以斜走,格数不限。(1)棋盘上的格点可以分为两类,第一类是它的横坐标和纵坐标之差为奇数,第二类是横纵坐标之差为偶数。(2)对于只能斜走的象,它每走7、一步,因为横纵坐标增加或减小的绝对值相等,所以横坐标和纵坐标之差的奇偶性无论如何行走都保持不变。象行走的规则如果:起始点和终止点分别属于两类点它们之间不能相互有到达否则:如果:两个格子同斜线(x=y)需要1步到达否则:需要2步到达12341234STS属于第一类点行列号差为偶数T属于第二类点行列号差为奇数不可互相达到TS、T都属于第一类点行列号差为偶数可互相达到又例:(1,1)到(8,2)可达,需2步:(1,1)->(5,5)->(8,2)又例:(2,3)到(7,4)可达,需2步:(2,3)->(5,6)->(7,8、4)规律:第一步的步长是(9、x1-x210、+11、y1-y212、)/2参考程序#include#includeintmain(){intnCases,i;scanf("%d",&nCases);for(i=0;i
3、/2);}}例程实现中常见的问题这是一个数学计算题,出错有一下几种情况:1)因为对问题分析不清楚,给出了错误的计算公式;2)不用数学方法,而试图用枚举所有鸡和兔的个数来求解此题,造成超时;3)试图把所有输入先存储起来,再输出,开的数组太小,因数组越界产生运行错;4)在每行输出末尾缺少换行符;5)对输入输出语法不熟悉导致死循环或语法错。2.2例题:棋盘上的距离国际象棋的棋盘是黑白相间的8*8的方格,棋子放在格子中间。王、后、车、象的走子规则如下:王:横、直、斜都可以走,但每步限走一格。后:横、直、斜都可以走,每步
4、格数不受限制。车:横、竖均可以走,不能斜走,格数不限。象:只能斜走,格数不限。写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。输入输出要求输入数据第一行是测试数据的组数t(0<=t<=20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字母从“a”到“h”,数字从“1”到“8”。输出要求对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出”Inf".输入样例2a1c3f5
5、f8输出样例2121311Inf解题思路这个问题是给定一个棋盘上的起始位置和终止位置,分别判断王、后、车、象从起始位置到达终止位置需要的步数。首先,王、后、车、象彼此独立,分别考虑就可以了。所以这个题目重点要分析王、后、车、象的行走规则特点,从而推出它们从起点到终点的步数。王的行走规则我们假设起始位置与终止位置在水平方向上的距离是x,它们在竖直方向上的距离是y。根据王的行走规则,他可以横、直、斜走,每步限走一格,所以需要的步数是min(x,y)+abs(x-y)即x,y中较小的一个加上x与y之差的绝对值,即x,y的
6、最大值。后行走的规则根据后行走的规则,她可以横、直、斜走,每步格数不受限制若两个格子同行(x=0)、同列(y=0)或同斜线(x=y)所需步数为1;否则所需步数为2;12341234ST车行走的规则根据车行走的规则,它可以横、竖走,不能斜走,格数不限若两个格子同行(x=0)或同列(y=0)需要步数为1;否则需要步数为2;12341234ST象行走的规则根据象行走的规则,它可以斜走,格数不限。(1)棋盘上的格点可以分为两类,第一类是它的横坐标和纵坐标之差为奇数,第二类是横纵坐标之差为偶数。(2)对于只能斜走的象,它每走
7、一步,因为横纵坐标增加或减小的绝对值相等,所以横坐标和纵坐标之差的奇偶性无论如何行走都保持不变。象行走的规则如果:起始点和终止点分别属于两类点它们之间不能相互有到达否则:如果:两个格子同斜线(x=y)需要1步到达否则:需要2步到达12341234STS属于第一类点行列号差为偶数T属于第二类点行列号差为奇数不可互相达到TS、T都属于第一类点行列号差为偶数可互相达到又例:(1,1)到(8,2)可达,需2步:(1,1)->(5,5)->(8,2)又例:(2,3)到(7,4)可达,需2步:(2,3)->(5,6)->(7,
8、4)规律:第一步的步长是(
9、x1-x2
10、+
11、y1-y2
12、)/2参考程序#include#includeintmain(){intnCases,i;scanf("%d",&nCases);for(i=0;i
此文档下载收益归作者所有