2015年蓝桥杯---省赛B组C题---三羊献瑞

2024-04-09 14:38
文章标签 蓝桥 2015 省赛 献瑞 三羊

本文主要是介绍2015年蓝桥杯---省赛B组C题---三羊献瑞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

三羊献瑞

题目描述:
观察下面的加法算式:

   祥 瑞 生 辉
+  三 羊 献 瑞
---------------三 羊 生 瑞 气

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
分析:
看到题目先8个for循环,这样倒也可以,毕竟是填空题吗,但是这里先分析一下题目,可以直接推出其中三个汉字的真实值,这样循环次数就降低了1000倍;

注意,是两个四位数相加的一个五位数,所以‘’只能为1;
接着分析,由于‘’+‘’+进位=‘’*10+‘’;
而‘’已经位1了,所以如果产生进位,则‘’只能为8或9;
1.如果‘’为8,则进位必须为1,且‘’为0,再看第三位相加,‘’为0,还必须产生进位,所以‘’必须9,且‘’为0,这就冲突了,‘’和‘’同时为0,故起始条件‘’不能是8;
所以的‘祥’只能为9;
故‘’+‘’+进位=9+1+进位=10+进位;
故‘’只能是0或1,而‘’已经是1,所以‘’只能是0;

故得结论
三=1
羊=0
祥=9

接下来5个for就行了;
code:

#include<stdio.h>
#include<set>using namespace std;
int main()
{int xiang,rui,sheng,hui,san,yang,xian,qi;san=1;yang=0;xiang=9;for(rui=0;rui<=9;rui++){for(sheng=0;sheng<=9;sheng++){for(hui=0;hui<=9;hui++){for(xian=0;xian<=9;xian++){for(qi=0;qi<=9;qi++){int num1=xiang*1000+rui*100+sheng*10+hui;int num2=san*1000+yang*100+xian*10+rui;int num3=san*10000+yang*1000+sheng*100+rui*10+qi;set<int> s;s.insert(xiang);s.insert(rui);s.insert(sheng);s.insert(hui);s.insert(san);s.insert(yang);s.insert(xian);s.insert(qi);if(s.size()==8&&num1+num2==num3&&num1!=0&&num2!=0&&num3!=0){printf("\n%d%d%d%d",san,yang,xian,rui);return 0;}}}}}}
}

ans:
1085

这篇关于2015年蓝桥杯---省赛B组C题---三羊献瑞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888422

相关文章

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

CF Bayan 2015 Contest Warm Up B.(dfs+暴力)

B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/probl

CF Bayan 2015 Contest Warm Up A.(模拟+预处理)

A. Bayan Bus time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/problem/A The fi

2015年校赛总结

题目名为“校赛总结”,其实更想换成“Rainbow为什么五题滚粗?!”。作为今年校赛大二没拆的两个队伍之一,结果打成这样,没脸见人了,总结起来就是我认为自己今天SB了。主要有以下几点: 1.我今天状态的确不好,最后卡的那道B题跟去年在农大校赛上遇见的那题类似,在最后那段时间我已经有思路了,可是由于当时不敢写。等到最后15分钟才开始敲,加上我用很麻烦的Dijstra那种方法,调试起来好多细节要处理

百度之星 2015 复赛 1001 (数长方形)

数长方形    Accepts: 595    Submissions: 1225  Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊喜欢玩木棒。一天他在玩木棒的时候,发现一些木棒会形成长方形

百度之星 2015 初赛(1) 1002 找连续数

找连续数      Accepts: 401      Submissions: 1911  Time Limit: 2000/1000 MS (Java/Others)      Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是

2015多校联合训练第三场Work(hdu5326)

题意: a是b的上司,b是c的上司,则a是c的上司,问构成一个树种,有多人是 k个人的上司 思路: 先找出root,然后dfs一下就行 #include <bits/stdc++.h>#define LL long longusing namespace std;const int MAXN = 1e6;int f[105];int n, k;int mp[101][101];

2015年多校联合训练第三场RGCDQ(hdu5317)

题意: f(i)代表i数中有的素数的种数,给出区间[l,r],求区间内max(gcd(f(i))), 由于i最大是1e6,2*3*5*7*11*13*17>1e6,故最多不超过7种素数, 先打表打出1e6内的素数种数表,然后用sum[i][j]代表1-i个数中,还有j个素数的个数,最后用sum[r][j] - sum[l-1][j]求出区间内含有j个素数的数的个数,暴力找出1,2,3,4,5

2015多校联合训练第一场Tricks Device(hdu5294)

题意:给一个无向图,给起点s,终点t,求最少拆掉几条边使得s到不了t,最多拆几条边使得s能到t 思路: 先跑一边最短路,记录最短路中最短的边数,总边数-最短边数就是第二个答案 第一个答案就是在最短路里面求最小割,也就是求最大流,然后根据最短路在建个新图,权为1,跑一边网络流 模板题,以后就用这套模板了 #include <iostream>#include <cstdio>#incl

2015多校联合训练第一场Assignment(hdu5289)三种解法

题目大意:给出一个数列,问其中存在多少连续子序列,子序列的最大值-最小值< k 这题有三种解法: 1:单调队列,时间复杂度O(n) 2:RMQ+二分,时间复杂度O(nlogn) 3:RMQ+贪心,时间复杂度O(nlogn) 一:RMQ+二分 RMQ维护最大值,最小值,枚举左端点i,二分找出最远的符合的右端点j,答案就是ans += j - i+1;(手推一下就知道) 比如1 2 3