01简单计算题.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
01简单计算题剖析

计算: 1-2+3-4+5-6+7......+n long fn(long n) { long sum=0; int i, flag=1; for (i=1; i=n; i++) { sum = sum+flag*i; flag = -flag; } return sum; } long fn(long n) { long sum=0; int j=1, i=1, flag=1; while (j=n) { sum = sum+i; i = -i; i0 ? i++ : i--; j++; } return sum; } long fn(long n) { if(n%2==0) return (n/2)*(-1); else return (n/2)*(-1)+n; } 朴秀峰 xfpiao@126.com 问题求解与程序设计 程序举例 鸡兔同笼 棋盘上的距离 校门外的树 填词 装箱问题 贷款利率 计算: 1-2+3-4+5-6+7+...+n 确定进制 skew数 鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2 只脚,兔子有4 只脚,没有例外)。已经知道了笼子里面脚的总数 a,问笼子里面至少有多少只动物,至多有多少只动物? 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a 32768)。 输出要求 包含n行,每行对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出两个0。 输入样例 输出样例 2 3 20 0 0 5 10 鸡兔同笼 #include stdio.h #include stdlib.h int main() { int nCases, i, nFeet; scanf(%d, nCases); for(i = 0; i nCases; i++) { scanf(%d, nFeet); if(nFeet %2 != 0) printf(0 0\n); else if (nFeet%4 != 0) printf(%d %d\n, nFeet / 4 + 1, nFeet / 2); else printf(%d %d\n, nFeet / 4, nFeet / 2); } system(pause); return 0; } 运行环境: DEV-C++ 思考 趣题:今有鸡、兔若干,它们共有50个头和140只脚,问鸡兔各多少? 编程:今有鸡、兔若干,它们共有a个头和b只脚,问鸡兔各多少? 棋盘上的距离 问题描述 国际象棋的棋盘是黑白相间的 8 * 8 的方格,棋子放在格子中间。 王、后、车、象的走子规则如下: 王:横、直、斜都可以走,但每步限走一格。 后:横、直、斜都可以走,每步格数不受限制。 车:横、竖均可以走,不能斜走,格数不限。 象:只能斜走,格数不限。 写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。 输入样例 输出样例 2 a1 c3 f5 f8 2 1 2 1 3 1 1 Inf h g f e d c b a 1 2 3 4 5 6 7 8 棋盘上的距离 int nCases, i; scanf(%d, nCases); for (i = 0; i nCases; i++) { char begin[5], end[5]; //用begin 和end 分别存储棋子的起止位置。 scanf(%s %s, begin, end); int x, y; //用x和y分别存储起止位置之间x方向和y方向上的距离。 x = abs(begin[0] - end[0]); y = abs(begin[1] - end[1]); 判定过程,见下页 } 输入样例 输出样例 2 a1 c3 f5 f8 2 1 2 1 3 1 1 Inf 棋盘上的距离 if (x == 0 y == 0) //起止位置相同, 所有棋子都走0步。 printf(0 0 0 0\n); else { if(x y) printf(%d, y); // 王的步数 else printf(%d, x); if(x == y || x == 0 || y == 0) printf( 1); // 后的步数 else printf( 2); if(x == 0 || y == 0) printf( 1);

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档