`
lg_asus
  • 浏览: 193995 次
  • 性别: 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中实现这一目标,主要基于数的中和原理,即通过特定的运算使得两个数相互抵消,从而达到交换的目的。 ...

    编一程序,使用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(); ...

    nihao.rar_代码 变量交换

    在C/C++这样的语言中,当我们想要交换两个变量a和b的值,传统的做法是借助一个临时变量: ```c++ int a = 5; int b = 10; int temp; temp = a; // 将a的值暂存到temp a = b; // 将b的值赋给a b = temp; // 将temp...

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

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

    C#中实现1到100的完数

    - `if(a%b==0)`:判断 `b` 是否为 `a` 的因子。 - `if(a==sum)`:判断当前数字 `a` 是否为完数。 3. **变量声明与初始化**: - `inta,b,c,sum;`:声明四个整型变量。 - `sum=1;`:初始化 `sum` 变量为 1,...

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

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

    两变量值互换

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

    JavaScript两个变量交换值的实现方法

    以上就是JavaScript中实现两个变量交换值的几种方法。每种方法都有其特定的应用场景和优势。对于初学者而言,理解这些不同的交换方法将有助于提升编程技巧。在实际应用中,选择合适的方法将取决于变量的类型、数据...

    利用subs函数对符号表达的变量进行替换求值

    例如,假设在 Matlab 工作空间中存在变量 a = 980 和 C2 = 3时,使用 subs 函数可以对符号表达式 y = C2/exp(a*t) 中的变量 a 进行替换求值。 y = dsolve('Dy = -a*y'); a = 980; C2 = 3; subs(y) 输出结果:ans =...

    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; 三、基本数据类型 基本数据类型是指计算机中最基本的数据类型,包括整型、浮点型、...

    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...

Global site tag (gtag.js) - Google Analytics