为了账号安全,请及时绑定邮箱和手机立即绑定

求 大 神 求 解。。

求 大 神 求 解。。

慕粉1600588581 2017-05-23 15:39:44
将0到9这十个数组成一位数加两位数加三位数等于四位数,0到9不能重复。用java如何写啊
查看完整描述

2 回答

已采纳
?
呦呦米

TA贡献90条经验 获得超59个赞

public class Test { 
 
    public static void main(String[] args) { 
        int arr[] = new int[1000]; 
        int a, b, c, d, e, f, k, i; 
        int x, y, z, o, p, q, r, s, t; 
        for (i = 123, k = 0; i <= 987; i++) { 
            a = i % 10; 
            b = i / 10 % 10; 
            c = i / 100; 
            if (a != b && b != c && a != c && b != 0 && a != 0) {  //求得一个三位数的各个位数都不相同,并存到数组中 
                arr[k] = i; 
                k++; 
            } 
        } 
        int sum = 1; 
        for (int m = 1; m <= 9; m++)  //求得9! 
            sum = sum * m; 
//System.out.println(sum); 
 
        for (d = 0; d <= arr.length - 1 && arr[d] != 0; d++) { 
            o = arr[d] % 10; 
            p = arr[d] / 10 % 10; 
            q = arr[d] / 100; 
            for (e = 0; e <= arr.length - 1 && arr[e] != 0; e++) { 
                r = arr[e] % 10; 
                s = arr[e] / 10 % 10; 
                t = arr[e] / 100; 
                if(arr[d]==arr[e]) continue;  //为减少循环的次数,当第一个数与第二个数相同时,继续下一层循环 
                for (f = 0; f <= arr.length - 1 && arr[f] != 0; f++) { 
                    x = arr[f] % 10; 
                    y = arr[f] / 10 % 10; 
                    z = arr[f] / 100; 
                    if(arr[f]==arr[e]||arr[f]==arr[d]) continue;//同上 
                    if (((arr[d] + arr[e]) == arr[f]) && (arr[e] == 2 * arr[d]) 
                            && (o * p * q * s * r * t * x * y * z == sum)) 
                        System.out.println(arr[d] + " " + arr[e] + " " + arr[f]); 
                } 
            } 
        } 
 
    } 
 
} 


运行结果:
192 384 576
219 438 657
273 546 819
327 654 981


查看完整回答
2 反对 回复 2017-05-23
  • 慕粉1600588581
    慕粉1600588581
    感谢感谢^o^,虽然我那个题目不是这样@_@,大概思路好像是这样,妹子学计算机的痛,啥也不会。
  • 呦呦米
    呦呦米
    不客气^o^
  • 2 回答
  • 0 关注
  • 1504 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信