生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯之凑算式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
湊算式
這個算式中A~ I代表1~9的數字,不同的字母代表不同的數字。
比如:
6+8/3+952/714 就是一種解法,
5+3/1+972/486 是另一種解法。
這個算式一共有多少種解法?
注意:你提交應該是個整數,不要填寫任何多余的內容或說明性文字。
思路:直接暴力枚舉,但是因為有除法,所以我們應該先通分,再計算。不整除就直接白費。
代碼如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std
;int vis
[11];
inline int check(int a
,int b
,int c
,int d
,int e
)
{memset(vis
,0,sizeof(vis
));vis
[a
]=vis
[b
]=vis
[c
]=1;int D
=d
,E
=e
;while(d
){vis
[d
%10]=1;d
/=10;}while(e
){vis
[e
%10]=1;e
/=10;}if(vis
[0]) return 0;for(int i
=1;i
<=9;i
++) if(vis
[i
]!=1) return 0;int x
=(c
*E
)/(__gcd(c
,E
));b
=(x
/c
)*b
;d
=(x
/E
)*D
;if((b
+d
)%x
) return 0;return a
+((b
+d
)/x
)==10;
}
int main()
{int ans
=0;for(int a
=1;a
<=9;a
++){for(int b
=1;b
<=9;b
++){for(int c
=1;c
<=9;c
++){for(int d
=111;d
<=999;d
++){for(int e
=111;e
<=999;e
++){if(check(a
,b
,c
,d
,e
)) ans
++;}}}}}cout
<<ans
<<endl
;return 0;
}
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的蓝桥杯之凑算式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。