1311. 【2015年绍兴市】数学计算路(count)

1311. 【2015年绍兴市】数学计算路(count)

题目描述:
五一期间,小明在外出游玩时经过了一条有趣的数学计算路,如下图所示。这条数学计算路以A为起点,D为终点,中间有B、C二个数字分岔路口。规定从A出发,顺次经过每个数字分岔路口,选择+、-、*、/ 四种运算符之一进行运算,当到达目的地D时,要求运算结果恰好等于E,现在请你帮助小明将所有符合上述条件的道路全部找出来。
在这里插入图片描述
输入:
输入文件count.in只有一行,是5个用空格隔开的数,表示A、B、C、D和E的值(其中A、B、C、D都是1~9的数字,E是正整数)。

输出:
输出文件count.out也只有一行,有一个整数,表示符合条件的道路的总数。

样例输入:
1 2 3 4 10

样例输出:
2

这道题我真的不想多说什么,也不知道主办方是怎么想的,居然出这么水的题,数据又小,操作又简单。根本没有任何难度好吗。水一水就过了。

所以说,俗话说得好:“骗分过样例,暴力出奇迹,暴搜挂着机,打表出省一”。于是这道题我就直接一个暴力,三重循环枚举64次,统计符合条件的次数,最终输出就好了。

对了,要注意,这道题有一个很难(keng)的数据点,记住,变量要用整数类型!!用实数会WA。
代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    
    
	int a,b,c,d,e;
	cin>>a>>b>>c>>d>>e;
	int s=0,s1=0,ans=0;
	for(int i=1;i<=4;i++)
	{
    
    
		for(int j=1;j<=4;j++)
		{
    
    
			for(int k=1;k<=4;k++)
			{
    
    
				if(i==1)
				{
    
    
					s=a+b;
				}
				if(i==2)
				{
    
    
					s=a-b;
				}
				if(i==3)
				{
    
    
					s=a*b;
				}
				if(i==4)
				{
    
    
					s=a/b;
				}
				if(j==1)
				{
    
    
					s+=c;
				}
				if(j==2)
				{
    
    
					s-=c;
				}
				if(j==3)
				{
    
    
					s*=c;
				}
				if(j==4)
				{
    
    
					s/=c;
				}
				if(k==1)
				{
    
    
					s+=d;
				}
				if(k==2)
				{
    
    
					s-=d;
				}
				if(k==3)
				{
    
    
					s*=d;
				}
				if(k==4)
				{
    
    
					s/=d;
				}
				if(s==e)
				{
    
    
					ans++;
				}
				s=0;
			}
		}
	}
	cout<<ans;
	return 0;
}

就是这样了,喜欢的话记得点赞哦

猜你喜欢

转载自blog.csdn.net/gongtianjian123/article/details/104126223
今日推荐