洛谷 火柴棒等式 JAVA版
原题链接:https://www.luogu.com.cn/problem/P1149
作为学习Java的练习题,随便写写(都写了好久555…)
1.需要一个函数计算每个数的花销;
2.满足两个条件计数器+1:①火柴棒花销②等式成立
3.在估计范围内遍历(暴露三流acmer水平)
import java.util.Scanner;
import java.text.DecimalFormat; //好像没用到
public class Main{
int []a= {6,2,5,5,4,5,6,3,7,6,};
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int sum,n,b,c;
n=scanner.nextInt();
n-=4;
int n2=5000;
sum=0;
Main t=new Main();
for(c=0;c<10000;c++) {
b=c/2;
for(int i=0;i<=b;i++) {
if(t.fire(i)+t.fire(c-i)+t.fire(c)==n) {
if(i==c-i) {
sum++;
//System.out.println(i+"+"+i+"="+c);
}
else { //两数位置对换依然满足条件,所以只算小数在前(两数不相等)
//System.out.println(i+"+"+(c-i)+"="+c);
//System.out.println((c-i)+"+"+i+"="+c);
sum+=2;
}
}
}
}
System.out.println(sum);
}
int fire(int a) { //计算每个整数的火柴棒消耗
int n,sum=0;
do {
n=a%10;
sum+=this.a[n];
a=a/10;
}while(a>0);
return sum;
}
}