当前位置:   article > 正文

【C语言趣味编程100题】_趣味编程题

趣味编程题

1.百钱百鸡——解不定方程组

/*
问题描述:1只公鸡5钱,1只母鸡3钱,3只小鸡1钱,现有100钱要买100只鸡,改怎么买?
问题分析:设买公鸡cock只,母鸡Hen只,小鸡chicken只
列出如下不定方程:
cock+hen+chicken=100
5cock+3hen+chicken/3=100
解决方法:实质是解不定方程,使用穷举法
*/

#include <stdio.h>

int main()
{
	int cock, hen, chicken;
	for (cock = 0; cock <= 20; cock++)
	{
		for (hen = 0; hen <= 33; hen++)
		{
			for (chicken = 0; chicken <= 100; chicken++)
			{
				if ((5 * cock + 3 * hen + chicken/3.0 == 100)&&(cock + hen + chicken == 100))
					printf("公鸡%d只,母鸡%d只,小鸡%d只\n", cock, hen, chicken);
			}
		}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2.选书方案——排列组合问题

/*
问题描述:有5本书,A\B\C三人分别拿一本,请问共有几种方案?
问题分析:排列组合问题
解决方法:穷举法、多重循环
*/

#include <stdio.h>

int main()
{
	int a, b, c, i = 0;//a,b,c分别表示A,B,C借阅的图书编号,i表示有效借阅次数
	for (a = 1; a <= 5; a++)
	{
		for (b = 1; b <= 5; b++)
		{
			for (c = 1; c <= 5; c++)
			{
				if (a != b && b != c && a != c)
				{
					i++;
					printf("A:%d, B:%d, C:%d\n", a, b, c);
				}
			}
		}
	}
	printf("共有%d种方案\n", i);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

4.抓交通肇事犯——不定方程,判断某个数是否为另一个数的平方

/*
问题描述:肇事逃逸,有3个目击证人,
甲:牌照前两位数字相同;
乙:牌照后两位相同,但与前两位不同;
丙:四位车号刚好是一个整数的平方。
求牌照号
问题分析:求一个四位数,解不定方程组
算法设计:穷举法
*/

#include <stdio.h>
#include <math.h>


int main()
{
	int a=0, b=0;	//a:前两位,b:后两位
	for (a = 0; a < 9; a++)
	{
		for (b = 0; b < 9; b++)
		{
			int c = a * 1000 + a * 100 + b * 10 + b;
			if (a != b &&  sqrt(c)==(int)sqrt(c))
			{
				printf("牌照为%d\n", c);
			}
		}
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/208900
推荐阅读