看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字。 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 295 + 173 = 468 173 + 295 = 468 183 + 492 = 675 以上都是正确的填写法! 注意: 111 + 222 = 333 是错误的填写法! 因为每个数字必须是不同的! 也就是说:1~9中的所有数字,每个必须出现且仅出现一次! 注意: 不包括数字“0”! 注意: 满足加法交换率的式子算两种不同的答案。 所以答案肯定是个偶数! 注意: 只要求计算不同的填法的数目 不要求列出所有填写法 更不要求填写源代码!
public class 填算式CCC { public static void main(String[] args) { String s,m,v; int [] a =new int [9]; int k=0,q,w,e,l=0; for( a[0]=1;a[0]<10;a[0]++) for( a[1]=1;a[1]<10;a[1]++) for( a[2]=1;a[2]<10;a[2]++) for( a[3]=1;a[3]<10;a[3]++) for( a[4]=1;a[4]<10;a[4]++) for( a[5]=1;a[5]<10;a[5]++) for( a[6]=1;a[6]<10;a[6]++) for( a[7]=1;a[7]<10;a[7]++) for( a[8]=1;a[8]<10;a[8]++) { k=0; for(int i=0;i<8;i++) { for(int j=i+1;j<9;j++) { if(a[i]!=a[j]) k++; } } s=""+a[0]+a[1]+a[2]; m=""+a[3]+a[4]+a[5]; v=""+a[6]+a[7]+a[8]; q=Integer.valueOf(s); w=Integer.valueOf(m); e=Integer.valueOf(v); if(k==36 && q+w==e ) { l++; System.out.println(q+"+"+w+"="+e); } } System.out.println(l); } }