蓝桥杯第七届C/C++B省赛凑算式
第三题:
凑算式
B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
就一个控制精度问题,其他的没有了。
答案 : 29
第一种:dfs,搜索每一个位置,确定当前的数,最后统一计算(终于自己都看不下去以前写的无穷for了QAQ)
源代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<algorithm>
int flag[11];
int ans[11];
int sum=0;
using namespace std;
void dfs(int pos) {
if(pos==10) {
double t1=(double)ans[1];
double t2=((double)ans[2])/((double)ans[3]);
double t3=((double)(ans[4]*100+ans[5]*10+ans[6]))/((double)(ans[7]*100+ans[8]*10+ans[9]));
double result=t1+t2+t3;
if(fabs(result-10.0)<=1e-8) {
sum++;
}
return;
}
for(int i=1;i<=9;++i) {
if(!flag[i]) {
ans[pos]=i;
flag[i]=1;
dfs(pos+1);
flag[i]=0;
}
}
}
int main() {
memset(flag,0,sizeof(flag));
memset(ans,0,sizeof(ans));
dfs(1);
printf("%d\n",sum);
return 0;
}
第二种:暴力for循环(直接跳过吧)
源代码:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<math.h>
#include<map>
#include<vector>
#include<algorithm>
#include<queue>
using namespace std;
#define MAX 0x3f3f3f3f
#define MIN -0x3f3f3f3f
#define PI 3.14159265358979323
#define N 1005
int main()
{
int a, b, c, d, e, f, g, h, i;
int sum = 0;
for (a = 1; a <= 9; a++)
{
for (b = 1; b <= 9; b++)
{
if (b == a)
continue;
for (c = 1; c <= 9; c++)
{
if (c == b || c == a)
continue;
for (d = 1; d <= 9; d++)
{
if (d == a || d == b || d == c)
continue;
for (e = 1; e <= 9; e++)
{
if (e == a || e == b || e == c || e == d)
continue;
for (f = 1; f <= 9; f++)
{
if (f == a || f == b || f == c || f == d || f == e)
continue;
for (g = 1; g <= 9; g++)
{
if (g == a || g == b || g == c || g == d || g == e || g == f)
continue;
for (h = 1; h <= 9; h++)
{
if (h == a || h == b || h == c || h == d || h == e || h == f || h == g)
continue;
for (i = 1; i <= 9; i++)
{
if (i == a || i == b || i == c || i == d || i == e || i == f || i == g || i == h)
continue;
else
{
if (fabs(a*1.0 + b*1.0 / c + (d * 100 + e * 10 + f)*1.0 / (g * 100 + h * 10 + i) - 10.00) < 0.0000000001)
{
sum++;
printf("%d%d%d%d%d%d%d%d%d\n", a, b, c, d, e, f, g, h, i);
printf("%.6lf\n", a*1.0 + b*1.0 / c + (d * 100 + e * 10 + f)*1.0 / (g * 100 + h * 10 + i));
}
}
}
}
}
}
}
}
}
}
}
printf("%d\n", sum);
return 0;
}
蓝桥杯第七届C/C++B省赛凑算式的更多相关文章
- 算法笔记_122:蓝桥杯第七届省赛(Java语言A组)试题解答
目录 1 煤球数目 2 生日蜡烛 3 搭积木 4 分小组 5 抽签 6 寒假作业 7 剪邮票 8 取球博弈 9 交换瓶子 10 压缩变换 前言:以下试题解答代码部分仅供参考,若有不当之处,还请路 ...
- 算法笔记_123:蓝桥杯第七届省赛(Java语言B组部分习题)试题解答
目录 1 凑算式 2 方格填数 3 四平方和 1 凑算式 凑算式 B DEF A + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A ...
- 蓝桥杯第七届决赛(国赛)C++B组 第四题 机器人塔
机器人塔 X星球的机器人表演拉拉队有两种服装,A和B.他们这次表演的是搭机器人塔. 类似: A B B A B A A A B B B B B A BA B A B B A 队内的组塔规则 ...
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛
/* 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 煤球数目(结果填空) 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形) ...
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈
2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈 题目描述 **取球博弈 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并 ...
- 蓝桥杯第十届真题B组(2019年)
2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组# 试题 A:组队# 本题总分:5分[问题描述]作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员,组成球队的首发阵容.每位球员担 ...
- [算法竞赛][2018][蓝桥杯][LanqiaoCA]第九届蓝桥杯A组
题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来.类似:3/2当然,这只是加了前2项 ...
- Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
有错误的或者有问题的欢迎评论 十六进制数1949对应的十进制数 19000互质的数的个数 70044与113148的最大公约数 第十层的二叉树 洁净数 递增序列 最大的元素距离 元音字母辅音字母的数量 ...
- 15年第六届蓝桥杯第七题_手链样式_(stl_string)
手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙.他想用它们串成一圈作为手链,送给女朋友.现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数.不要填写任 ...
随机推荐
- angular核心$watch,$digest,$apply之间的联系
浏览器事件发生时,会在浏览器的上下文window中执行,而angular有自己的上下文angular content,angular 事件在自己的上下文angular content中执行. $wat ...
- Android_简易的短信发送器
这个随笔将介绍如何完成一个简单的第三方的短信发送器(不打开短信界面,调用android的api完成功能) 1.首先,我们来做布局 由于我这里写的是一个简易的,,短信发送,所以只是一个LinearLay ...
- Linux crontab定时器设置(定期执行java程序)(转)
Crontab 语法 Crontab语法一个crontab文件用五个段来定义:天,日期和时间,和一个要定期执行的命令代码. * * * * * command to be execut ...
- Problem V
Problem Description The aspiring Roy the Robber has seen a lot of American movies, and knows that th ...
- 关于Mybaits映射一点心得
本人的第一篇手写博客 -日期2017-11-06 在写博客之前一直使用手写笔记!!! 以前一直使用Hibernate,基本上没用过Mybatis,工作中需要做映射关系,简单的了解下Mybatis的映射 ...
- Windows解决anaconda下双python版本安装TensorFlow
首先,就是双版本anaconda的安装: 以前安装好的是python2.7版本,而TensorFlow的安装仅支持3.5版本的.但是自己本来的2.7版本又不想遗弃.所以安装双版本的: 在anacond ...
- Elasticsearch集群调优
系统调优 禁用swap 使用swapoff命令可以暂时关闭swap.永久关闭需要编辑/etc/fstab,注释掉swap设备的挂载项. swapoff -a 如果完全关闭swap不可行,可以试着降低s ...
- 浅谈javascript的函数节流
什么是函数节流? 介绍前,先说下背景.在前端开发中,有时会为页面绑定resize事件,或者为一个页面元素绑定拖拽事件(其核心就是绑定mousemove),这种事件有一个特点,就是用户不必特地捣乱,他在 ...
- Android打开/data/目录以及导出文件
打开logcat和和file Explorer Tools-->Android-->Android Device Monitor 如果右侧没有出现,Windows-->Show Vi ...
- 到底vuex是什么?
Vuex 什么是Vuex? 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 个人理 ...