蓝桥杯之三羊献瑞


三羊献瑞

观察下面的加法算式:

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

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

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

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

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
  int a[] = {0,1,2,3,4,5,6,7,8,9}, c,d,e;
  do {
    if(a[0] != 0 && a[4] != 0) {
      c = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
    d = a[4] * 1000 + a[5] * 100 + a[6] * 10 + a[1];
    e = a[4] * 10000 + a[5] * 1000 + a[2] * 100 + a[1] *10 + a[7];
    if(c+d == e) break;
    }
  }while(next_permutation(a,a+10));
  cout << d <<endl; 
}

直接暴力模拟,刚开始没去想 三 是可以算出来了的,两个4位数相加,得到一个5位数,他的最高位一定是1.应该还能更简洁点。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM