题解:P1149 [NOIP 2008 提高组] 火柴棒等式
前言
蒟蒻制作不易,求管理员通过。
思路
先将拼出数字零到九需要用到的火柴根数存进
最后在主函数里循环判断,如满足条件,则等式成立,答案加一。
AC代码
#include<bits/stdc++.h>
using namespace std;
int s[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
int n, ans;
int sl(int x){
int sum = 0;
if(x < 10){
sum = s[x];
}
else{
int t;
t = x;
while(t != 0){
sum += s[t % 10];
t /= 10;
}
}
return sum;
}
int main(){
cin >> n;
for(int i = 0;i <= 1000;i++){
for(int j = 0;j <= 1000;j++){
if(sl(i) + sl(j) + sl(i + j) == n - 4){
//若满足此条件,则等式成立
ans++;
}
}
}
cout << ans << "\n";
return 0;
}
有错误请大佬指出!