简单计算与模拟1:鸡兔同笼(POJ 3237)

1 问题描述

图1 问题描述

2 解题思路

        鸡有两只脚,兔子有四只脚,且输入数据可能为奇数,使用公式计算即可。

3 设计代码

#include 
int main()
{
	int nCases, nFeets;
	while (scanf("%d", &nCases) != EOF)
	{
		for (int i = 0; i < nCases; i++)
		{
			scanf("%d", &nFeets);
			if (nFeets % 4 == 0)
			{
				printf("%d %d\n", nFeets / 4, nFeets / 2);
			}
			else if (nFeets % 2 == 0)
			{
				printf("%d %d\n", nFeets / 4 + 1, nFeets / 2);
			}
			else
			{
				printf("0 0\n");
			}
		}
	}
	return 0;
}

4 执行结果

简单计算与模拟1:鸡兔同笼(POJ 3237)_第1张图片 图2 执行结果

5 复杂度分析

        时间复杂度为O(nCases)。

6 解题心得

  • 公式法是一种非常好的解题方法。
  • 枚举法可能超时。
  • scanf读取数据的速度快与cin。

你可能感兴趣的:(算法基础,算法,数据结构,c语言)