题解:P9230 [蓝桥杯 2023 省 A] 填空问题
A. 幸运数
由于是提交答案题,所以直接写个暴力枚举即可。但也不至于从
int A(){
int cnt=0;
for(int i=1;i<=7;i+=2){//偶数位的数为 10 的奇数次方
int x=pow(10,i);//计算起始数
for(int j=x;j<=x*10-1;j++){//一个个枚举
int sum1=0,sum2=0,jj=j;
for(int k=1;k<=i/2+1;k++) sum1+=jj%10,jj/=10;//计算前面一半的数位之和
for(int k=1;k<=i/2+1;k++) sum2+=jj%10,jj/=10;//计算后面一半的数位之和
if(sum1==sum2) cnt++;//计数器+1
}
}
return cnt;
}
答案为
B. 有奖问答
由于是提交答案题,所以直接写个搜索即可。
int b=0;
void dfs(int score,int cnt){
if(score==70) b++;//获得了 70 分答案+1
if(score==100||cnt>=30) return ;//到达 100 分或做完 30 道题目
cnt++;//做完题目
dfs(0,cnt);//错误
dfs(score+10,cnt);//正确
}
int B(){
dfs(0,0);//各自从 0 开始
return b;
}
答案为
还是那句话,由于是提交答案题,所以直接根据模板输出答案即可。
代码就不摆了(这你懒得打???),放个记录显示我过了。