`

java算法----0至9这十个数组成两个三位数和一个四位数

    博客分类:
  • java
 
阅读更多
package com.zhonghaiwangluokeji.interview;

/**
 * 0-9这十个数,组合成两个三位数和一个四位数
 * 求出满足条件:两个三位数相加等于那个四位数
 * 的所有这些数
 * @author yangjianzhou
 *
 */
public class Problem3 {

	public static void main(String[] args) {
		printNumbers();
	}
	public static void printNumbers(){

		int result = 0;
		for(int i=123;i<=987;i++){
			for(int j=123;j<=987;j++){
				result = i+j;
				if((result>1000)&&isTrue(result,i,j)){
					System.out.print(result+" ");
					System.out.print(i+" ");
					System.out.println(j+" ");
				}
			}
		}
	}

	public static boolean isTrue(int result,int i,int j){
		String str = "0123456789";
		String s = result+""+i+""+j;
		int index = 0;
		String str1 = "";
		for(int k =0;k<str.length();k++){
			index = s.indexOf(str.charAt(k));
			if(index>=0){
				str1 = s.replaceFirst(str.charAt(k)+"", "a");
				s = str1;
			}
		}
		String s1 = s.replaceAll("a", "");
		if(s1.length()==0){
			return true;
		}
		return false;
	}
}



运行结果:
1035 246 789 
1035 249 786 
1053 264 789 
1053 269 784 
1053 284 769 
1035 286 749 
1035 289 746 
1053 289 764 
1089 324 765 
1089 325 764 
1098 342 756 
1098 346 752 
1206 347 859 
1206 349 857 
1098 352 746 
1098 356 742 
1206 357 849 
1206 359 847 
1089 364 725 
1089 365 724 
1098 423 675 
1098 425 673 
1305 426 879 
1305 429 876 
1089 432 657 
1026 437 589 
1089 437 652 
1026 439 587 
1089 452 637 
1089 457 632 
1062 473 589 
1098 473 625 
1098 475 623 
1305 476 829 
1062 479 583 
1305 479 826 
1062 483 579 
1026 487 539 
1026 489 537 
1062 489 573 
1026 537 489 
1026 539 487 
1062 573 489 
1062 579 483 
1062 583 479 
1026 587 439 
1026 589 437 
1062 589 473 
1098 623 475 
1503 624 879 
1098 625 473 
1503 629 874 
1089 632 457 
1089 637 452 
1089 652 437 
1089 657 432 
1098 673 425 
1503 674 829 
1098 675 423 
1503 679 824 
1089 724 365 
1089 725 364 
1098 742 356 
1602 743 859 
1035 746 289 
1098 746 352 
1035 749 286 
1602 749 853 
1098 752 346 
1602 753 849 
1098 756 342 
1602 759 843 
1053 764 289 
1089 764 325 
1089 765 324 
1053 769 284 
1053 784 269 
1035 786 249 
1035 789 246 
1053 789 264 
1503 824 679 
1305 826 479 
1305 829 476 
1503 829 674 
1602 843 759 
1206 847 359 
1206 849 357 
1602 849 753 
1602 853 749 
1206 857 349 
1206 859 347 
1602 859 743 
1503 874 629 
1305 876 429 
1305 879 426 
1503 879 624 

分享到:
评论

相关推荐

    2位数*3位数=4位数的算法

    在编程领域,计算一个2位数乘以3位数得到4位数的算法是一个基本的算术运算。这里我们将深入探讨这个主题,并通过Java代码来实现这个算法。 首先,我们需要理解2位数和3位数的范围。一个2位数在10到99之间,而一个3...

    n的阶乘问题--阶乘位数--阶乘末尾0的个数

    在编程领域,阶乘是一个常见的数学概念,尤其在算法和计算数学中经常被用到。本文将深入探讨“n的阶乘问题”,包括阶乘的定义、计算阶乘位数的方法以及如何确定阶乘末尾零的个数。 首先,阶乘是指一个正整数n与小于...

    一个简单的解决6位数密码的代码

    在标签“源代码”提示下,我们可以假设有一个特定的编程语言被用来解决这个问题,如Python、Java或C++。每种语言都有其特定的语法和库函数,但基本的逻辑和算法设计会保持不变。 压缩包中的文件名为“jiemi”,可能...

    java算法练习题 大家下载看看啦

    - **描述**:水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。 - **实现思路**: - 使用`for`循环遍历100到999之间的所有数字。 - 对于每一个数字,分别提取出百位、十位和个位上的数字。 - 计算...

    JAVA算法100例-1.doc

    水仙花数(Narcissistic number)是指一个三位数,其各位数字的立方和等于该数本身。程序通过`shuixianhua(int x)`方法检查一个数是否为水仙花数,通过分解三位数的各个位数,然后计算立方和进行比较。 **程序4**:...

    JAVA经典算法案例

    水仙花数是指一个三位数,其各位数字的立方和等于该数本身。程序通过循环遍历100到999,将数字拆分成个位、十位和百位,然后计算这三个位数的立方和,与原数比较。若相等,则是水仙花数。 4. **质因数分解**: 质...

    蓝点被必做的算法经典题java.c/c++

    - **目标**: 判断一个5位数是否为回文数。 - **程序分析**: - 回文数的特点是个位与万位相同,十位与千位相同。 - 可以通过字符串操作或者数学操作来实现判断。 - 如果数字转换为字符串,可以简单地比较对应位置...

    JAVA经典算法

    水仙花数是指一个三位数,它的各个位上的数字的立方和等于它本身。 #### 示例代码分析: 示例代码提供了一种检测水仙花数的方法: ```java public boolean shuixianhua(int x) { int i = 0, j = 0, k = 0; i = x ...

    JAVA算法题目集合.pdf

    这个文件中的Java算法题目集合涵盖了多个经典算法和编程问题,适合用来提升编程能力和算法理解。以下是对这些题目知识点的详细解释: 1. **最大公约数与最小公倍数**:求两个数的最大公约数(GCD)和最小公倍数...

    JAVA算法100例.pdf

    水仙花数是指一个三位数,它的各个位上的数字立方和等于它本身。例如,153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3。 #### 示例代码解析: ```java public class exp2 { public static void main(String args[]...

    JAVA非常经典的算法

    **题目**:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 **代码实现**: ```java public class Exp2 { public static void main(String[] args) { int i = 0; Math ...

    Java代码,蓝桥杯,九个数乘法.doc

    题目要求编写一段Java代码来找出所有可能的数字组合,使得两个由不同数字组成的两位数的乘积等于另外两个由不同数字组成的三位数和两位数的乘积。即找到所有满足以下条件的\(a, b, c, d, e, f, g, h, i\)(\(1 \leq ...

    java 经典习题.doc

    6. **最大公约数和最小公倍数**:程序6中,通过辗转相除法(欧几里得算法)求解两个数的最大公约数和最小公倍数。 7. **字符统计**:程序7展示了如何读取一行字符并统计其中各类字符的数量。 8. **字符串累加**:...

    JAVA排序算法集合

    快速排序是一种高效的排序算法,采用了分治法的策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。快速排序的关键在于选择合适的基准值。 **时间复杂度**: - 最好情况:O(n log n),当每次...

    2016JAVA算法面试编程题全集(50题及答案)

    - **水仙花数定义**:水仙花数(Narcissistic number)是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153是一个3位数,且1^3 + 5^3 + 3^3 = 153,所以153是一个水仙花数。 - **判断方法**: - ...

    lzw压缩算法java实现

    LZW(Lemple-Ziv-Welch)压缩算法是一种高效的无损数据压缩方法,由Lemple、Ziv和Welch三位科学家共同开发。该算法基于字典编码思想,通过构建和更新动态字典来实现数据的压缩。在Java中实现LZW算法主要涉及以下几个...

    Java常用8大排序算法

    ### Java常用八大排序算法详解 #### 一、直接插入排序 **基本思想:** 直接插入排序的基本思路是在要排序的一组数中,假设前面 (n-1) [n&gt;=2] 个数已经排好顺序,现在要把第 n 个数插入到前面的有序数列中,使得这 ...

    java算法.docx

    水仙花数是指一个三位数,其各位数字立方和等于该数本身。程序通过遍历101到999,每次迭代时,将数字分解为百位、十位和个位,然后计算这三个位数的立方和,如果相等则输出这个数字。 【程序 4】该程序实现了正整数...

    java经典算法

    - 算法分析:这是一个典型的动态规划问题,可以通过两个变量f1和f2来保存前两个月的兔子对数,然后更新f2为f1和f2的和,f1更新为f2的旧值。循环遍历指定月份数,输出每月的兔子对数。 2. **素数判断** - 题目描述...

Global site tag (gtag.js) - Google Analytics