一些有趣的奥数题

1.有A、B、C、D、E五个互不相同的整数,请输出所有ABCD✖E=DCBA的情况。

解:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a, b, c, d, e;
	for (a = 1; a < 10; a++)
	{
		for (b = 0; b < 10; b++)
		{
			for (c = 0; c < 10; c++)
			{
				for (d = 0; d < 10; d++)
				{
					for (e = 1; e < 10; e++)
					{
						if (a != b && a != c && a != d && a != e
							&& b != c && b != d && b != e
							&& c != d && c != e
							&& d != e)
							if ((a * 1000 + b * 100 + c * 10 + d) * e == d * 1000 + c * 100 + b * 10 + a)
								printf("%d%d%d%d\n*  %d\n----\n%d%d%d%d\n",a,b,c,d,e,d,c,b,a);
					}
				}
			}
		}
	}
	return 0;
}

2.用1~6这6个自然数组成一个三角形,并让这个三角形三条边上数字之和相等,请输出所有可能。

 解:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a, b, c, d, e, f;
	for (a = 1; a < 7; a++)
	{
		for (b = 1; b < 7; b++)
		{
			for (c = 1; c < 7; c++)
			{
				for (d = 1; d < 7; d++)
				{
					for (e = 1; e < 7; e++)
					{
						for (f = 1; f < 7; f++)
						{
							if (a != b && a != c && a != d && a != e && a != f
								&& b != c && b != d && b != e && b != f
								&& c != d && c != e && c != f
								&& d != e && d != f
								&& e != f)
								if (a + b + d == a + c + f && a + b + d == d + e + f && a + c + f == d + e + f)
									printf("  %d	%d\n %d %d\n%d %d% d\n\n", a,a+b+d, b, c, d, e, f);
							//Sleep(100);
						}
					}
				}
			}
		}
	}
	return 0;
}

3.有一个两位数,十位数上的数字是个位数的2倍,如果把十位上的数与个位上的数交换,就得到了另外一个两位数,把这个两位数与原来的两位数相加和是132,原两位数为? 

解: 

#include<stdio.h>
int main()
{
	int a,b;
	for(a=0;a<=9;a++)
	{
		b=2*a;
		if((10*b+a+10*a+b)==132)
			printf("%d\n",10*b+a);
	}
	return 0;
}

 4.有一个六位数,它的个位数字是6,如果将6移至第一位前面时所得的新六位数是原数的4倍,那么这个六位数是?

解:

#include<stdio.h>
int main()
{
	int a,b,c,d,e,f=6;
	for(a=1;a<=9;a++)
	{
		for(b=0;b<=9;b++)
		{
			for(c=0;c<=9;c++)
			{
				for(d=0;d<=9;d++)
				{
					for(e=0;e<=9;e++)
					{
						if((a*100000+b*10000+c*1000+d*100+e*10+f)*4==6*100000+a*10000+b*1000+c*100+d*10+e)
							printf("%d%d%d%d%d%d\n",a,b,c,d,e,f);
					}
				}
			}
		}
	}
	return 0;
}

5.今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何? 

解:

#include <stdio.h>
int main()
{
	int a, b;
	for (a = 1; a <= 35 ; a++)
	{
		b = 35 - a;
		if (2 * a + 4 * b == 94)
			printf("共有%d头鸡,%d头兔\n", a, b);
	}
	return 0;
}

6.A、B两地相距300千米,甲车从A地出发24千米后,乙车才从B地相向而行。已知甲车每小时行40千米,乙车每小时行52千米,若甲车是上午8时出发,两车相遇时是几时几分?

 图

解:

#include <stdio.h>
int main()
{
	float Jiash=40, Yish=52,Jiasm,Yism;
	Jiasm = Jiash / 60;
	Yism = Yish / 60;
	int hour=8, minute;
	minute = 24 / Jiasm + (300 - 24) / (Jiasm + Yism);
	hour += minute / 60;
	minute = minute % 60;
	printf("%d:%d\n", hour, minute);
	return 0;
}

7.家店商场运来一批洗衣机和彩电,彩电的台数是洗衣机的3倍,现在每天平均售出10台洗衣机和15台彩电,洗衣机售完后,彩电还剩下120台没有售出,运来洗衣机、彩电各多少台?

解:

#include <stdio.h>
int main()
{
	int washingMachine=0, colorTV=120;
	for (int i = 1;; i++)
	{
		washingMachine += 10;
		colorTV += 15;
		if (colorTV==washingMachine*3)
		{
			printf("共运来%d台洗衣机,%d台彩电\n", washingMachine, colorTV);
			break;
		}
	}
	return 0;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值