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

不用中间变量交换a b的值及完数

 
阅读更多
一:不用中间变量交换a b值。
分析:
a=a+b; #将a b的和赋值给a
b=a-b; #a的值已经发生变化,并且保存了和值,因此这里要只能对b进行求值,不能改变a的值。
a=a-b; #同理求得a值。

另一种解法:
a=a^b
b=a^b
a=a^b

^ 异域: a^b === a & ~b

完数:
一个数的所有因子(不包括自身)相加等于自身,则该数就是完数。如6的因子是1 2 3, multiply(1,2,3) == sum(1,2,3)

/**
	 * 取得所有因子(不包括1和自身)
	 * @param num
	 * @return
	 */
	private List<Integer> findAllFactor(int num)
	{
		List<Integer> list = new ArrayList<Integer>();
		boolean found = false;
		for (int i = 2; i <= Math.sqrt(num); i++)
		{
			if (num % i == 0)
			{
				found = true;
				list.add(i);
				list.addAll(this.findAllFactor(num / i));
				break;
			}
		}
		if (!found)
		{
			list.add(num);
		}
		return list;
	}


测试了下,只有6是完数。
分享到:
评论

相关推荐

    Java不使用中间变量交换两个数

    在编程中,交换两个数值是常见的操作,但不使用中间变量进行交换可能需要一些巧妙的技巧。本文将探讨如何在Java中实现这一目标,主要基于数的中和原理,即通过特定的运算使得两个数相互抵消,从而达到交换的目的。 ...

    示例代码:不经过中间变量交换两个数

    ### 不经过中间变量交换两个数 #### 知识点概览 1. **位运算符的理解与应用** - 位运算符的概念及其在编程中的作用 - 位异或运算符`^`的工作原理及其特性 2. **不使用额外变量交换两个数的方法** - 基于位异或...

    编一程序,使用scanf()函数输入变量a,b的值,将a,b的值互换后,再输出a,b的值。.c

    编一程序,使用scanf()函数输入变量a,b的值,将a,b的值互换后,再输出a,b的值。.c

    不使用中间变量,交换int型的 a, b两个变量的值。

    这里我们将详细讨论四个示例,分别使用加减法、位操作和数组、对象来交换整数变量`a`和`b`的值。 1. 加减法交换(by ppchen) ```javascript var a = 10, b = 2; a = a + b; // a becomes 12 b = a – b; // b ...

    一种不需要中间变量交换两个变量内容的方法

    假设我们有两个变量a和b,初始值分别为a0和b0,我们可以按照以下步骤来交换它们的值: 1. `LDA a`:将变量a的值加载到累加器(假设累加器用A表示)。 2. `XOR b`:执行异或操作,A XOR b,此时累加器A的值变成了`a0...

    java变量交换代码

    //得到输入的值,保存到变量a //Scanner是jdk类库中的类 //保存在java.util包下 int a = new Scanner(System.in).nextInt(); System.out.print("输入整数b:"); int b = new Scanner(System.in).nextInt(); ...

    易语言源码易语言文本变量交换源码.rar

    易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码易语言文本变量交换源码.rar 易语言源码...

    JS实现不用中间变量temp 实现两个变量值得交换方法

    在JavaScript编程中,有时我们需要交换两个变量的值而无需使用额外的中间变量。这在内存管理有限或希望优化代码的情况下特别有用。以下是三种常见的方法来实现这个目标: 1. **加减法交换**: 这是最直观的方法,...

    两变量值互换

    例如,假设我们有两个整数变量a和b,交换过程如下: ```python temp = a a = b b = temp ``` 这种方法简单明了,但需要一个额外的存储空间。 现在,我们来看位运算的方法,也称为“异或交换”。异或运算符(`^`)...

    python数字金字塔-31-交换变量的值之方法二.ev4.rar

    假设我们有两个变量a和b,它们分别存储了两个值,我们想要交换这两个值。传统方法是创建一个临时变量temp: ```python a = 5 b = 10 temp = a a = b b = temp print(a, b) # 输出:10 5 ``` 在上述代码中,我们...

    python字符串加密-30-交换变量的值之方法一.ev4.rar

    本资源"python字符串加密-30-交换变量的值之方法一.ev4.mp4"可能是一个教学视频,详细讲解了如何在Python中进行字符串加密以及如何交换变量的值,这是编程中的基础操作。下面我们将深入探讨这两个主题。 首先,我们...

    小学信息学竞赛-第2课

    交换两个变量的值可以使用第三个变量的方法,例如: int a, b; int t; cin&gt;&gt;a&gt;&gt;b; t=a; a=b; b=t; cout&lt;&lt;"a="&lt;&lt;a&lt;&lt;" b="&lt;&lt;b; 三、基本数据类型 基本数据类型是指计算机中最基本的数据类型,包括整型、浮点型、...

    交换两个变量的值,不使用第三个变量的方法及实现.docx

    在编程中,交换两个变量的值是一个常见的任务,但有时我们可能希望避免使用第三个临时变量。本文探讨了几种不依赖额外变量实现交换的方法,主要针对C/C++编程语言。 1. **算术运算**: 算术运算方法利用加减法或乘...

    可爱的Python之 交换值

    当我们想交换两个变量a和b的值时,传统的做法如下: ```python temp = a a = b b = temp ``` 而在Python中,可以使用元组打包和解包实现如下操作: ```python a, b = b, a ``` 在这个例子中,Python会先计算等号...

    Python3之不使用第三方变量,实现交换两个变量的值

    ### Python3之不使用第三方变量实现交换两个变量的值 在编程中,交换两个变量的值是一个常见的操作。通常的做法是引入一个临时变量来完成这一过程。然而,在Python这种动态语言中,我们可以采用更为简洁的方式来...

    Delphi交换两个变量值的方法(含示例)

    XOR运算符在某些情况下可以用于无中间变量交换两个变量的值,但仅适用于整数类型。 ```delphi var A, B: Integer; begin A := 5; B := 10; A := A XOR B; B := A XOR B; A := A XOR B; Writeln('A: ', A...

    千以内的完数判断求和

    在IT领域,尤其是在编程教育与实践中,理解和应用数学概念如完数(Perfect Number)是提升逻辑思维和编程技能的重要途径。完数是一种特殊的自然数,它等于其所有真因数(除自身外的所有正因数)之和。例如,6是一个...

    完数编程——C语言版

    ### 完数编程——C语言版 #### 一、知识点概览 本文将详细介绍如何使用C语言编写程序来找出1000以内的所有完数,并列出这些完数的所有因子。主要内容包括完数的定义、算法设计思路、优化技巧以及完整的C语言实现。...

Global site tag (gtag.js) - Google Analytics