2014第5届蓝桥杯B组c/c++初赛部分题总结~
.
直接暴力:
#include<bits/stdc++.h> using namespace std; int main() { int i,j; double m; for(i=0;i<=35;i++) { for(j=i;j<=42;j++) { m=2.3*i+1.9*j; if(m==82.3) cout<<i<<endl; } } return 0; }

规律:2^n+1;
答案为:2^10+1=1025

答案:14种
#include<bits/stdc++.h> using namespace std; int ans=0; void dfs(int index,int hua,int store,int beer) { if(index>14) return; if(index==14) { if(hua==9&&store==5&&beer==1) in ans++; } dfs(index+1,hua+1,store,beer-1); dfs(index+1,hua,store+1,beer*2); }t main() { dfs(0,0,0,2); cout<<ans<<endl; return 0; }

暴力:
分式除法判断可以用交叉相乘转化成乘法
#include<bits/stdc++.h> using namespace std; int ans=0; int main() { int a,b,c,d; for(a=1;a<=9;a++) { for(b=1;b<=9;b++) { if(a==b) continue; for(c=1;c<=9;c++) { for(d=1;d<=9;d++) { if(c==d) continue; if(b*c*(10*a+d)==a*d*(10*b+c)) ans++; } } } } cout<<ans<<endl; return 0; }
7.六角填数

如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。
#include<bits/stdc++.h> using namespace std; int main() { int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; do { int t=a[1]+a[2]+a[3]+a[4]; if(a[0]==1&&a[1]==8&&a[11]==3&&t==a[7]+a[8]+a[9]+a[10]&&t==a[0]+a[2]+a[5]+a[7] &&t==a[4]+a[6]+a[9]+a[11]&&t==a[1]+a[5]+a[8]+a[11]&&t==a[0]+a[3]+a[6]+a[10]) cout<<a[5]<<endl; }while(next_permutation(a,a+12)); return 0; }

浙公网安备 33010602011771号