三羊献瑞
观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
(如果有对齐问题,可以参看【图1.jpg】)
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
1085
1由题可得三为1,所以剩下几个数就是0,2,3,4,5,6,7,8,9
2,式子可以写成 a b c d
+ 1 f e b
1 f c b h
所以有七个未知数
3.从9个数中取7个数,输出满足的情况
#include <iostream> #include <string> using namespace std; int a[9] = {0,2,3,4,5,6,7,8,9}; int b[7]; int a1,b1,c1; void Print()//判读是否满足加法式 { a1 = b[0]*1000+b[1]*100+b[2]*10+b[3];//a,b,c,d b1 = 1000+b[4]*100+b[5]*10+b[1];//1,f,e,b c1 = 10000+b[4]*1000+b[2]*100+b[1]*10+b[6]; if(c1 == (a1+b1)) { cout<<a1<<endl; cout<<b1<<endl; cout<<c1<<endl; cout<<endl; } } void Add(int m,int n)//七个数排列 { if(m == 0) { if(b[0]==8||b[0] == 9) { Print(); } return ; } else { int i,t; for(i=0;i<=m;i++) { t = b[i]; b[i] = b[m]; b[m] = t; Add(m-1,n); t = b[i]; b[i] = b[m]; b[m] = t; } } } void fun(int m,int n)//九个数组合 { int i,j; for(i=m;i>=n;i--) { b[n-1] = a[i-1]; if(n>1) { fun(i-1,n-1); } else { Add(6,7); //Print(); } } } int main() { memset(b,0,sizeof(b)); fun(9,7);//十个里面取七个 return 0; }
结果
9567
1085
10652
原文:https://www.cnblogs.com/zkw123/p/10583349.html