日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯-凑算式

發(fā)布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯-凑算式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


湊算式


? ? ?B ? ? ?DEF
A + --- + ------- = 10
? ? ?C ? ? ?GHI
? ? ?
(如果顯示有問題,可以參見【圖1.jpg】)
?
?
這個算式中A~I代表1~9的數(shù)字,不同的字母代表不同的數(shù)字。


比如:
6+8/3+952/714 就是一種解法,
5+3/1+972/486 是另一種解法。
這個算式一共有多少種解法?

注意:你提交應(yīng)該是個整數(shù),不要填寫任何多余的內(nèi)容或說明性文字。


本題可以用dfs做 一個數(shù)一個數(shù)的搜索 也可以寫9個for循環(huán) 直到發(fā)現(xiàn)了一種最簡單的方法:

next_permutation

可以用各種類型的數(shù)組,包括string類,從數(shù)組初始值 走到下一個字典序

兩個參數(shù)是想要遍歷字典序的起始位置和結(jié)束位置。

? ? ? ?string類需要傳進的是迭代器?

code:

#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; double a[9]={1,2,3,4,5,6,7,8,9}; int c; int main() {while(next_permutation(a,a+9)){if(a[0]+a[1]/a[2]+(a[3]*100+a[4]*10+a[5])/(a[6]*100+a[7]*10+a[8])==10.0) c++;} cout<<c<<endl; return 0; }

dfs:


#include<cstdio> #include<cstring> #include<iostream> using namespace std; int a[10],c; bool book[10]; bool check() {double p,c;int b,m;p=a[2]*1.0/a[3];b=a[4]*100+a[5]*10+a[6];m=a[7]*100+a[8]*10+a[9];c=b*1.0/m;if(a[1]+p+c==10)return 1;return 0; } void dfs(int n) {if(n>9&&check()){c++;}else{for(int i=1;i<10;i++){if(!book[i]){book[i]=1;a[n]=i;dfs(n+1);book[i]=0;}}} } int main() {dfs(1); cout<<c<<endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯-凑算式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。