原创


三羊献瑞

观察下面的加法算式:

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

(如果有对齐问题,可以参看【图1.jpg】)

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

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

分析:三羊生瑞气这个数中三只能是数码1,所以其他7个数字不必考虑是1

法一(枚举):

枚举祥、瑞、生、辉、羊、献、气这7个字,然后判断是否满足等式即可。

  1. public class 三羊献瑞 {
  2. public static void main(String args[]) {
  3. int tt=0;
  4. int arr[]=new int[7];
  5. for(arr[0]=2;arr[0]<=9;arr[0]++) { //祥
  6. for(arr[1]=0;arr[1]<=9;arr[1]++) { //瑞
  7. if(arr[1]==1) {
  8. continue;
  9. }
  10. for(arr[2]=0;arr[2]<=9;arr[2]++) { //生
  11. if(arr[2]==1) {
  12. continue;
  13. }
  14. for(arr[3]=0;arr[3]<=9;arr[3]++) { //辉
  15. if(arr[3]==1) {
  16. continue;
  17. }
  18. for(arr[4]=0;arr[4]<=9;arr[4]++) { //羊
  19. if(arr[4]==1) {
  20. continue;
  21. }
  22. for(arr[5]=0;arr[5]<=9;arr[5]++) { //献
  23. if(arr[5]==1) {
  24. continue;
  25. }
  26. for(arr[6]=0;arr[6]<=9;arr[6]++) { //气
  27. if(arr[6]==1) {
  28. continue;
  29. }
  30. int flag[]= {0,0,0,0,0,0,0,0,0,0};
  31. int i=0;
  32. int ff=0;
  33. for(i=0;i<=6;i++) { //判断是否包含相同的数码
  34. if(flag[arr[i]]==1) {
  35. ff=1;
  36. break;
  37. }
  38. flag[arr[i]]=1;
  39. }
  40. if(ff==1) { //有相同数码
  41. continue;
  42. }
  43. if((arr[0]*1000+arr[1]*100+arr[2]*10+arr[3])+(1000+arr[4]*100+arr[5]*10+arr[1])==10000+arr[4]*1000+arr[2]*100+arr[1]*10+arr[6]) {
  44. System.out.println(1000+arr[4]*100+arr[5]*10+arr[1]);
  45. tt=1;
  46. }
  47. if(tt==1) {
  48. break;
  49. }
  50. }
  51. if(tt==1) {
  52. break;
  53. }
  54. }
  55. if(tt==1) {
  56. break;
  57. }
  58. }
  59. if(tt==1) {
  60. break;
  61. }
  62. }
  63. if(tt==1) {
  64. break;
  65. }
  66. }
  67. if(tt==1) {
  68. break;
  69. }
  70. }
  71. if(tt==1) {
  72. break;
  73. }
  74. }
  75. }
  76. }

法二(全排列):

全排列思想看我另外一篇博客:https://www.cnblogs.com/chiweiming/p/8727164.html

对0、2、3、4、5、6、7、8、9这8个数码进行全排列,每产生一种全排列就将全排列前7

位数取出进行运算,满足条件算式输出即可。

  1. public class 三羊献瑞{
  2. static int flag=0;
  3. static int arr[]= {0,2,3,4,5,6,7,8,9};
  4. static void Swap(int a,int b) {
  5. int temp=0;
  6. temp=arr[a];
  7. arr[a]=arr[b];
  8. arr[b]=temp;
  9. }
  10. static void Quan(int num) {
  11. if(num==8) { //产生一种全排列
  12. if((arr[0]*1000+arr[1]*100+arr[2]*10+arr[3])+(1000+arr[4]*100+arr[5]*10+arr[1])==10000+arr[4]*1000+arr[2]*100+arr[1]*10+arr[6]) {
  13. System.out.println(1000+arr[4]*100+arr[5]*10+arr[1]);
  14. flag=1;
  15. }
  16. return;
  17. }
  18. int i=0;
  19. for(i=num;i<=8;i++) {
  20. Swap(i,num);
  21. Quan(num+1);
  22. if(flag==1) {
  23. return;
  24. }
  25. Swap(i,num);
  26. }
  27. }
  28. public static void main(String args[]) {
  29. Quan(0);
  30. }
  31. }

答案:1085

22:07:35

2018-06-08

三羊献瑞——第六届蓝桥杯C语言B组(省赛)第三题的更多相关文章

  1. 2015年第六届蓝桥杯C/C++B组省赛题目解析

    一.奖券数目 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利.虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是5位数(10000-99999),要求其中 ...

  2. 加法变乘法——第六届蓝桥杯C语言B组(省赛)第六题

    原创 加法变乘法 我们都知道:1+2+3+ ... + 49 = 1225现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如:1+2+3+...+10*11+12+...+27*28+ ...

  3. 移动距离——第六届蓝桥杯C语言B组(省赛)第八题

    原创  问题描述: 移动距离 X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3...当排满一行时,从下一行相邻的楼往反方向排号.比如:当小区排号宽度为6时,开始情形如下: ...

  4. 牌型总数——第六届蓝桥杯C语言B组(省赛)第七题

    原创 牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌.一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张.这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得 ...

  5. 积分之谜——第六届蓝桥杯C语言B组(国赛)第一题

    原创 标题:积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会返固定的积分. 小明开业第一天收到了三笔订单: 第一笔:3个A + 7个B + 1个C,共返积分:3 ...

  6. 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

    2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...

  7. 2015第六届蓝桥杯C/C++ B组

    奖券数目:枚举 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利.虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是5位数(10000-99999),要求其 ...

  8. 递增三元数组——第九届蓝桥杯C语言B组(省赛)第六题

    原创 标题:递增三元组 给定三个整数数组A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN],请你统计有多少个三元组(i, ...

  9. 乘积尾零——第九届蓝桥杯C语言B组(省赛)第三题

    原创 标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7 ...

随机推荐

  1. 为IIS Host ASP.NET Web Api添加Owin Middleware

    将OWIN App部署在IIS上 要想将Owin App部署在IIS上,只添加Package:Microsoft.OWIN.Host.SystemWeb包即可.它提供了所有Owin配置,Middlew ...

  2. Maven项目合并

    当多个项目之间有关联.依赖jar包有重复时,可以考虑进行合并.举例,我一开始有一个test-pilling项目,pom文件如下: <project xmlns="http://mave ...

  3. php end()

    end()的用法

  4. eclipse-连接TFS错误 <the server to respond with a valid http response>解决方法

    解决办法 如果普通凭证有多个,则将普通凭证给删除.

  5. HDOJ5876(补图的最短路)

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  6. java数字游戏基础篇

    题目: 1.100以内,程序先产生一个随机数,然后用户从控制台输入数字,猜是大了还是小了,第7次时 输出 “您太笨了,答案是”+x 思路:1.随机数,所以用到random 2.用户从键盘输入 ,则用到 ...

  7. Java:Java 清单

    ylbtech-Java:Java 清单 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylb ...

  8. PHP函数(四)-变量函数

    变量函数 将声明的函数的函数名赋给一个变量,通过该变量来调用函数 <?php function Calculate($a,$b){ return $a + $b; } echo "计算 ...

  9. Python3之itertools模块

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 1.Infinite Iterators Iterator Arguments Results Example cou ...

  10. php浏览器端调试输出方法

     1.利用js打印到浏览器控制台 <?php function console_log($data) {     if (is_array($data) || is_object($data)) ...