哪位大佬,给我看下这个用java如何写?
有一工人甲,工资是三位数ABC元(一个字母代表0-9中一个数字),组内其它五个工人的工资可以这样表示:ACB,BAC,BCA,CAB,CBA,且这五个工人的工资总额为3194元。请问工人甲的工资具体是多少?
程序代码:package com.xiaoa.test;
/**
* 有一工人甲,工资是三位数ABC元(一个字母代表0-9中一个数字),组内其它五个工人的工资可以这样表示:ACB,BAC,BCA,CAB,CBA,且这五个工人的工资总额为3194元。请问工人甲的工资具体是多少?
*
*
*/
public class Demo3 {
public static void main(String[] args) {
for (int i = 0; i <= 9; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = 0; k <= 9; k++) {
int ABC = i * 100 + j * 10 + k;
int ACB = i * 100 + k * 10 + j;
int BAC = j * 100 + i * 10 + k;
int BCA = j * 100 + k * 10 + i;
int CAB = k * 100 + i * 10 + j;
int CBA = k * 100 + j * 10 + i;
int sum = ABC + ACB + BAC + BCA + CAB + CBA;
if (sum == 3194) {
System.out.println("工人甲的工资: " + ABC);
}
}
}
}
}
}好像没找到结果,你看看是不是我的代码有问题

程序代码:package com.xiaoa.test;
/**
* 有一工人甲,工资是三位数ABC元(一个字母代表0-9中一个数字),组内其它五个工人的工资可以这样表示:ACB,BAC,BCA,CAB,CBA,且这五个工人的工资总额为3194元。请问工人甲的工资具体是多少?
*
*
*/
public class Demo3 {
public static void main(String[] args) {
for (int i = 0; i <= 9; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = 0; k <= 9; k++) {
int ABC = i * 100 + j * 10 + k;
int ACB = i * 100 + k * 10 + j;
int BAC = j * 100 + i * 10 + k;
int BCA = j * 100 + k * 10 + i;
int CAB = k * 100 + i * 10 + j;
int CBA = k * 100 + j * 10 + i;
int sum = ACB + BAC + BCA + CAB + CBA;
if (sum == 3194) {
System.out.println("工人甲的工资: " + ABC);
}
}
}
}
}
}

程序代码:class Untitled {
/**
* 分析:特殊五位数加和:ACB,BAC,BCA,CAB,CBA表示为
* 100A+200*(B+C)+10B+20*(A+C)+C+2*(A+B)=3194;
* 122A+212B+221C=3194
* 由于简单判断,122A+212B为偶数,故只有C为偶数等式成立
* 则C的步长可以为2
* 其他特征不明显,可后期优化。
* */
public static void main(String[] args) {
find(0,0,0);
System.out.println("统计次数:"+count);
}
/** 次数统计 */
static int count;
/**
* 嵌套判断
**/
public static void find(int a, int b, int c){
count++;
if(122*a+212*b+221*c==3194){
System.out.println("统计结果:"+(a*100+b*10+c));
}
// 步长为2,有前期分析得到
c+=2;
if(c>9){
c=0;
b+=1;
}
if(b>9){
b=0;
a+=1;
}
if(a>9)
return;
find(a,b,c);
}
}[此贴子已经被作者于2018-5-22 22:27编辑过]

程序代码:class Untitled {
/**
* 分析:三角阵的起点可模拟坐标系实现,简化代码
* */
public static void main(String[] args) {
for(int i=-9;i<=9;i++){
for(int j=-9;j<=9;j++){
if((i>j&&i+j>0)||(j>i&&i+j<0)){
int r = Math.abs(i);
int c = Math.abs(j);
System.out.print(r>c?r-c:c-r);
}
else
System.out.print(" ");
}
System.out.println();
}
}
}
