`
QuarterLifeForJava
  • 浏览: 177713 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

abc+cba=?满足条件的所有组合的简单算法实现

阅读更多
package test;

public class Test {
	/**
	 *其效率比常规算法效率缩短1/3
	 *其为一种简单实现,必然存在更优算法
	 *算法实现来自一道编程题:
	 *已知abc+cba=1333,其中a,b,c均为一位数。
	 *编程求出满足条件的a,b,c的所有组合。
	*/
	public static void main(String[] args) {
		//用户输入的一个数
		int num = 122531;
		//统计有几种方案
		int count = 0;
		//通过算法定义循环从哪个数开始
		final int start = start(num);
		//通过算法定义循环从哪个数结束
		final int end = end(num);
		//打印出符合条件的结果
		for (int i = start; i <= end; i++) {
			if((i+result(i))==num){
				count++;
				System.out.println(i+"+"+result(i)+"="+num);
			}
		}
		System.out.println("共有"+count+"种方案");
	}
	
	public static int start(int num){
		int x = num/3;
		int l = String.valueOf(x).length();
		int value = 1;
		for (int i = 1; i < l; i++) {
			value = 10*value;
		}
		return x-value;
	}
	
	public static int end(int num){
		int x = num/3;
		int l = String.valueOf(x).length();
		int value = 1;
		for (int i = 1; i <= l; i++) {
			value = 10*value;
		}
		return value-1;
	}
	
	public static int result(int x){
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < String.valueOf(x).length(); i++) {
			sb.append(String.valueOf(x).charAt(i));
		}
		int y = Integer.parseInt(sb.reverse().toString());
		return y;
	}
}
分享到:
评论

相关推荐

    C语言编程题及答案.doc

    这道题目的目标是找到满足abc+cba=1333条件的一位数对。使用了三层嵌套循环遍历所有可能的一位数组合,当找到符合条件的a、b、c时,打印它们。这里体现了循环结构和条件判断的应用。 4. 使用海伦公式求三角形面积...

    C语言必知的二十个算法实现

    1. **ABC全排列**:全排列算法用于生成一个集合的所有可能排列组合。可以使用回溯法或者DFS(深度优先搜索)来实现,对于三个元素ABC,会得到ABC, ACB, BAC, BCA, CAB, CBA这六种排列。 2. **猜车牌号**:这个可能...

    C语言编程题及答案.docx

    3. **数字排列问题**:这是一个简单的两层嵌套循环,用于遍历所有可能的一位数组合,检查它们是否满足abc+cba=1333的条件。通过这种方式,我们可以找到所有符合条件的a, b, c值。 4. **海伦公式求三角形面积**:...

    (完整版)C语言编程题及答案.doc

    问题:已知 abc+cba=1333, 其中 a、b、c 均为一位数,例如:617+716=1333, 518+815=1333,试编程求出符合这一规律的 a、b、c,并输出结果。 分析:该题目要求使用三层循环语句来枚举所有可能的 a、b、c 值,并使用 ...

    C语言编程题及答案[归类].pdf

    3. 数字规律查找:这是一个三重嵌套循环,用于遍历所有可能的一位数组合,寻找满足abc+cba=1333的a、b、c值。利用if语句进行条件检查,当找到符合条件的组合时输出结果。 4. 海伦公式求三角形面积:本题涉及到...

    字符串的全排列和组合算法.doc

    字符串的全排列和组合算法是计算机科学中的一种基础算法,主要应用于数据处理和问题求解。在本文档中,我们将探讨如何使用C++实现字符串的全排列算法,并讨论如何处理包含重复字符的情况。 首先,全排列是指从一个...

    java实现的经典递归算法三例

    例如,对于字符串 "abc",其所有可能的排列为 "abc"、"acb"、"bac"、"bca"、"cab" 和 "cba"。 **代码分析:** ```java public class Permutation { public static void permute(String str) { char[] strArray = ...

    基础算法-python数字金字塔

    for C1 in range(0, C): # 左 [ABC] tempResult = tempResult + L[C1] tempResult = tempResult + L[C] # 中 [D] for C2 in range(C - 1, -1, -1): # 右 [CBA] tempResult = tempResult + L[C2] for C3 in ...

    算法学习笔记

    - **递归算法**:通过递归调用自身函数来生成所有可能的组合,通常会利用回溯思想来实现。 - **非递归算法**:使用迭代方法实现全排列,通常涉及循环和交换元素等操作。 #### 非递归算法示例 假设有一个字符串S = ...

    字符串排列组合

    在编程领域,字符串排列组合是一个常见的算法问题,它涉及到如何生成一个字符串的所有可能的排列方式。这个主题主要与计算机科学的算法设计和技术有关,尤其是在数据结构和算法分析的课程中经常遇到。本节将深入探讨...

    C语言循环结构程序设计编程题.pdf

    `while`循环在条件满足时执行循环体,`do-while`循环先执行一次再检查条件,`for`循环常用于已知循环次数的情况。 2. **break和continue语句**:`break`用于立即退出最内层循环,`continue`则跳过当前循环剩余部分...

    Python字符串的全排列算法实例详解

    result += self.swap(newElem, elem) return result def swap(self, newElem, Elem): # 处理字符交换 result = [] listElem = list(Elem) listElem.insert(0, newElem) result.append(''.join(listElem)) ...

    蓝桥杯Python大题历届比赛40个算法大题.docx

    - **全排列**:给定一组不重复的元素,求出所有可能的排列组合。例如,对于`{'A', 'B', 'C'}`这三个不同的字符,其全排列结果共有6种:`ABC`, `ACB`, `BAC`, `BCA`, `CAB`, `CBA`。 #### 实现方法 - **递归法**:...

    组合数学第一张的ppt

    例如,如果从集合{a, b, c}中选择三个元素,所有可能的排列有abc, acb, bac, bca, cab, cba,总共有6种不同的排列。排列的数量可以用阶乘表示,对于n个不同元素的排列,其数量为n!。 组合则是无序的选择,只关心...

    生成字符串的全排列,可以用回溯法实现

    回溯法是一种解决此类问题的有效方法,它通过尝试所有可能的解决方案并逐步撤销那些不符合条件的尝试,来找到所有正确答案。在此,我们将深入探讨回溯法以及如何使用它来生成字符串的全排列。 首先,回溯法是一种...

    C语言实现全排列算法模板的方法

    给定一个数组,算法可以生成所有可能的排列组合,例如,对于数组{a, b, c},全排列算法可以生成以下六种排列组合:abc, acb, bac, bca, cab, cba。 2. 递归思路 递归思路是实现全排列算法的关键。递归思路的基本...

    全国软件专业人才设计与开发大赛2011c本科预赛真题

    例如,如果存在一个三位数abc,满足abc = a! + b! + c!,那么这个数就是我们要找的特殊数。 **解题思路** 为了找到这个特殊数,我们需要编写一个程序来遍历所有的三位数(100至999之间),并计算每个数的每一位数字...

    C语言基础算法

    - 示例:`REV("ABC") = "CBA"` 5. **数组操作** - 插入元素:`INSERT(STR,X,Y)` 或 `INSERT(An,X,Y)` - 示例:`INSERT("ABC", "12", 2) = "AB12C"` - 删除元素:`DEL(STR,X)` 或 `DEL(An,X)` - 示例:`DEL(...

    彻底理解全排列算法

    全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。

Global site tag (gtag.js) - Google Analytics